sql >> Database >  >> RDS >> Mysql

Waarom geeft SELECT ... WHERE id =a een resultaat als waarde 0 is

MySQL zet tekenreeksen in stilte om in getallen in een numerieke context.

Het doet dit door de voorloop numerieke tekens (zoals cijfers, minteken en decimale punt) om te zetten.

Als er geen cijfers zijn, stopt het. Dus:

where id = 'a'

wordt geïnterpreteerd als:

where id = 0

Moraal:gebruik nooit enkele aanhalingstekens rond numerieke constanten -- of constanten die getallen zouden moeten zijn.




  1. MySQL - Hoe u zoekresultaten krijgt met nauwkeurige relevantie

  2. hoe tekst in cel te vervangen door gegevens in een andere tabel in mysql

  3. Mysql - Alle tabellen en kolommen hernoemen naar kleine letters?

  4. Controleer of het bestaat, zo ja, update met 1++, zo niet, voeg toe