MySQL po cichu konwertuje łańcuchy na liczby w kontekście numerycznym.
Robi to poprzez konwersję wiodących znaków numerycznych (takich jak cyfry, znak minus i kropka dziesiętna).
Jeśli nie ma cyfr, zatrzymuje się. A więc:
where id = 'a'
jest interpretowany jako:
where id = 0
Morał:Nigdy nie używaj pojedynczych cudzysłowów wokół stałych numerycznych — lub stałych, które powinny być liczbami.