Bạn đang trộn các loại. ID
là một số nguyên (hoặc số). Bạn đang so sánh nó với một chuỗi. Vì vậy, MySQL cần phải quyết định loại nào sẽ sử dụng để so sánh. Những loại nào được sử dụng? Chà, một chuỗi? Số A. Chuỗi được chuyển đổi thành một số, sử dụng các chữ số hàng đầu. Vì vậy, nó trở thành 101
và các trận đấu.
Bạn thực sự chỉ nên so sánh số với số và chuỗi với chuỗi. Bạn có thể thử viết mã dưới dạng:
SELECT * FROM tableName WHERE ID = 101foo2
Tuy nhiên, bạn sẽ gặp lỗi. Một khả năng khác là buộc chuyển đổi thành một chuỗi:
SELECT * FROM tableName WHERE CAST(ID as CHAR) = '101foo2'