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