Sie mischen Typen. ID
ist eine Ganzzahl (oder Zahl). Du vergleichst es mit einem String. MySQL muss also entscheiden, welcher Typ für den Vergleich verwendet werden soll. Welche Typen werden verwendet? Nun, eine Schnur? Nein. Eine Nummer. Die Zeichenfolge wird unter Verwendung der führenden Ziffern in eine Zahl umgewandelt. Also wird es zu 101
und Streichhölzer.
Sie sollten wirklich nur Zahlen mit Zahlen und Strings mit Strings vergleichen. Sie könnten versuchen, den Code wie folgt zu schreiben:
SELECT * FROM tableName WHERE ID = 101foo2
Sie würden jedoch einen Fehler erhalten. Eine andere Möglichkeit besteht darin, die Umwandlung in einen String zu erzwingen:
SELECT * FROM tableName WHERE CAST(ID as CHAR) = '101foo2'