Questa istruzione restituisce righe per my_field = '13a' :
SELECT * FROM my_table WHERE my_field=13
Perché MySQL esegue la conversione del tipo da stringa a numero durante il confronto, trasformando '13a' a 13 . Maggiori informazioni su in questa pagina della documentazione
.
L'aggiunta di virgolette trasforma l'intero in una stringa, quindi MySQL esegue solo il confronto di stringhe. Ovviamente, '13' non può essere uguale a '13a' .
Il LIKE La clausola esegue sempre il confronto di stringhe (a meno che uno degli operandi non sia NULL , nel qual caso il risultato è NULL ).