Mícháte typy. ID
je celé číslo (nebo číslo). Přirovnáváte to k řetězci. MySQL se tedy musí rozhodnout, jaký typ použít pro srovnání. Jaké typy se používají? No, provázek? Ne. Číslo. Řetězec se převede na číslo pomocí úvodních číslic. Stává se tedy 101
a zápasy.
Měli byste skutečně porovnávat pouze čísla s čísly a řetězce s řetězci. Můžete zkusit napsat kód jako:
SELECT * FROM tableName WHERE ID = 101foo2
Dostanete však chybu. Další možností je vynutit převod na řetězec:
SELECT * FROM tableName WHERE CAST(ID as CHAR) = '101foo2'