Dies:Warum verursacht das Vergleichen von Typen in MYSQL keinen Fehler?
SELECT * FROM table WHERE comlumn1 = column2;
liefert Ergebnisse. Diese
:
SELECT * FROM table WHERE column1 != column2;
zurück nichts, obwohl es Zellen in den Spalten sind, die beiden Anfragen erfüllen.
Es stellte sich heraus, dass Spalte1 eine varchar
und Spalte2 eine int
war.
Meine Frage ist warum hat es keinen Fehler? Warum sollte man Ergebnisse zurückgeben und nicht die anderen? Wenn die Typen unterschiedlich sind, sind sie sicherlich immer nicht gleich?
UPDATE:
Die Werte in column1
waren varchars
wie 1234-34
und column2
hatte ints
wie 1234
. Dies bedeutet, dass es immer übereinstimmen würde, weil es die varchar
1234-34
in 1234
würde.
http://stackoverflow.com/questions/4147215/how-int-database-field-gets-compared-to-varchar-type – MusicLovingIndianGirl
@MusicLovingIndianGirl Dank. Das ist ähnlich, aber vor den Antworten hätte ich nicht nach einer solchen Frage gesucht. Ich würde auch nicht argumentieren, dass Leute nach dieser Frage suchen würden. Auch meine Frage war _why_ gibt es keinen Fehler nicht _how_ die Typen verglichen werden. Ich denke, es ist eine andere Frage – Adzz