Denne sætning returnerer rækker for my_field = '13a'
:
SELECT * FROM my_table WHERE my_field=13
Fordi MySQL udfører typekonvertering fra streng til nummer under sammenligningen, drejer '13a'
til 13
. Mere om det på denne dokumentationsside
.
Tilføjelse af anførselstegn gør hele tallet til en streng, så MySQL udfører kun strengsammenligning. Det er klart, '13'
kan ikke være lig med '13a'
.
LIKE
klausul udfører altid strengsammenligning (medmindre en af operanderne er NULL
, i hvilket tilfælde resultatet er NULL
).