sql >> Databasteknik >  >> RDS >> Mysql

Varför returnerar SELECT ... WHERE id =a ett resultat om värdet är 0

MySQL konverterar tyst strängar till siffror i ett numeriskt sammanhang.

Det gör det genom att konvertera de inledande numeriska tecknen (som siffror, minustecken och decimalkomma).

Om det inte finns några siffror stoppas det. Så:

where id = 'a'

tolkas som:

where id = 0

Moral:Använd aldrig enstaka citattecken runt numeriska konstanter – eller konstanter som borde vara tal.




  1. Hur man tar reda på användarnamnet och lösenordet för mysql-databasen

  2. MySQL får första icke-nullvärdet efter grupp av

  3. Infoga data från SQL Server till MySql med Trigger

  4. CodeIgniter-fråga:Hur flyttar man ett kolumnvärde till en annan kolumn i samma rad och sparar den aktuella tiden i den ursprungliga kolumnen?