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