Този израз връща редове за my_field = '13a'
:
SELECT * FROM my_table WHERE my_field=13
Тъй като MySQL извършва преобразуване на тип от низ в число по време на сравнението, преобразувайки '13a'
до 13
. Повече за това в тази страница с документация
.
Добавянето на кавички превръща цялото число в низ, така че MySQL извършва само сравнение на низове. Очевидно '13'
не може да бъде равно на '13a'
.
LIKE
клаузата винаги извършва сравнение на низове (освен ако някой от операндите не е NULL
, в който случай резултатът е NULL
).