Mieszacie typy. ID
jest liczbą całkowitą (lub liczbą). Porównujesz to do łańcucha. Dlatego MySQL musi zdecydować, jakiego typu użyć do porównania. Jakie typy są używane? Cóż, sznurek? Nie. Numer. Ciąg jest konwertowany na liczbę przy użyciu wiodących cyfr. Tak więc staje się 101
i mecze.
Tak naprawdę powinieneś porównywać tylko liczby z liczbami i łańcuchy z łańcuchami. Możesz spróbować napisać kod jako:
SELECT * FROM tableName WHERE ID = 101foo2
Otrzymasz jednak błąd. Inną możliwością jest wymuszenie konwersji na ciąg:
SELECT * FROM tableName WHERE CAST(ID as CHAR) = '101foo2'