Tento příkaz vrací řádky pro my_field = '13a'
:
SELECT * FROM my_table WHERE my_field=13
Protože MySQL během porovnávání provádí převod typu z řetězce na číslo, změní se '13a'
do 13
. Více o tom na této stránce dokumentace
.
Přidání uvozovek změní celé číslo na řetězec, takže MySQL provádí pouze porovnání řetězců. Zřejmě '13'
nemůže být rovno '13a'
.
LIKE
klauzule vždy provádí porovnání řetězců (pokud jeden z operandů není NULL
, v takovém případě je výsledek NULL
).