Esta declaración devuelve filas para my_field = '13a' :
SELECT * FROM my_table WHERE my_field=13
Debido a que MySQL realiza una conversión de tipo de cadena a número durante la comparación, convierte '13a' a 13 . Más sobre eso en esta página de documentación
.
Agregar comillas convierte el número entero en una cadena, por lo que MySQL solo realiza una comparación de cadenas. Obviamente, '13' no puede ser igual a '13a' .
El LIKE La cláusula siempre realiza una comparación de cadenas (a menos que uno de los operandos sea NULL , en cuyo caso el resultado es NULL ).