Ta instrukcja zwraca wiersze dla my_field = '13a'
:
SELECT * FROM my_table WHERE my_field=13
Ponieważ MySQL wykonuje konwersję typu z ciągu znaków na liczbę podczas porównywania, obracając '13a'
do 13
. Więcej na ten temat na tej stronie dokumentacji
.
Dodanie cudzysłowów zamienia liczbę całkowitą w ciąg, więc MySQL wykonuje tylko porównanie ciągów. Oczywiście '13'
nie może być równy '13a'
.
LIKE
Klauzula zawsze wykonuje porównanie ciągów (chyba że jeden z operandów jest NULL
, w takim przypadku wynikiem jest NULL
).