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