Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mysql Like + Wild Card vs Equals Operator

Diese Anweisung gibt Zeilen für my_field = '13a' zurück :

SELECT * FROM my_table WHERE my_field=13

Da MySQL während des Vergleichs eine Typkonvertierung von Zeichenfolge zu Zahl durchführt, wird '13a' bis 13 . Mehr dazu in dieser Dokumentationsseite .

Das Hinzufügen von Anführungszeichen verwandelt die Ganzzahl in einen String, sodass MySQL nur einen Stringvergleich durchführt. Offensichtlich '13' darf nicht gleich '13a' sein .

Das LIKE -Klausel führt immer einen Zeichenfolgenvergleich durch (es sei denn, einer der Operanden ist NULL , in diesem Fall ist das Ergebnis NULL ).