Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mysql Like + Wild Card vs opérateur égal

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