sql >> Database teknologi >  >> RDS >> Mysql

Hvorfor returnerer SELECT ... WHERE id =a et resultat, hvis værdien er 0

MySQL konverterer lydløst strenge til tal i en numerisk sammenhæng.

Det gør det ved at konvertere de førende numeriske tegn (såsom cifre, minustegn og decimaltegn).

Hvis der ikke er nogen cifre, stopper det. Så:

where id = 'a'

tolkes som:

where id = 0

Moral:Brug aldrig enkelte anførselstegn omkring numeriske konstanter – eller konstanter, der skal være tal.




  1. Hvad er forskellene mellem backtick og enkelt citat? Kan jeg bruge IF-sætning i en forespørgsel som ovenfor?

  2. Database, der kan håndtere>500 millioner rækker

  3. Hvad gør sp_reset_connection?

  4. MySQL - Perl:Sådan får du en række postnumre inden for indsendte x miles af indsendt postnummer i Perl eksempel