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 ).