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