Cette instruction renvoie des lignes pour my_field = '13a'
:
SELECT * FROM my_table WHERE my_field=13
Parce que MySQL effectue la conversion de type de chaîne en nombre pendant la comparaison, tournant '13a'
à 13
. Plus d'informations à ce sujet dans cette page de documentation
.
L'ajout de guillemets transforme l'entier en chaîne, donc MySQL n'effectue que la comparaison de chaînes. Évidemment, '13'
ne peut pas être égal à '13a'
.
Le LIKE
La clause effectue toujours une comparaison de chaînes (sauf si l'un des opérandes est NULL
, auquel cas le résultat est NULL
).