Die Vergleichsoperatoren (einschließlich <
und >
) "arbeiten" sowohl mit String-Werten als auch mit Zahlen.
Für MySQL
Standardmäßig werden Zeichenfolgenvergleiche nicht zwischen Groß- und Kleinschreibung unterschieden und verwenden den aktuellen Zeichensatz. Der Standardwert ist latin1
(cp1252 Westeuropäisch), was auch gut für Englisch funktioniert.
Zeichenkettenvergleiche werden zwischen Groß- und Kleinschreibung unterschieden, wenn die Zeichensatzsortierung der zu vergleichenden Zeichenketten zwischen Groß- und Kleinschreibung unterscheidet, d. h. der Name des Zeichensatzes endet mit _cs
statt _ci
. Es macht wirklich keinen Sinn, alle Informationen zu wiederholen, die hier im MySQL-Referenzhandbuch verfügbar sind.
Referenz zu MySQL-Vergleichsoperatoren:
http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html
Weitere Informationen zu MySQL-Zeichensätzen/Sortierungen:
http://dev.mysql.com/doc/refman/5.5/en/charset.html
Um die spezifischen Fragen zu beantworten, die Sie gestellt haben:
F: Ist dies eine Möglichkeit, Zeichenfolgen in SQL zu vergleichen?
A: Ja, sowohl in MySQL als auch in SQL Server
F: und wie wirkt es?
A: Ein Vergleichsoperator gibt einen booleschen Wert zurück, entweder TRUE, FALSE oder NULL.
F: eine Zeichenfolge, die kleiner als eine andere ist, bevor sie in der Wörterbuchreihenfolge steht? Zum Beispiel ist Ball weniger als Wasser?
A: Ja, denn 'b' kommt vor 'w' in der Zeichensatzsortierung, dem Ausdruck
'ball' < 'water'
gibt WAHR zurück. (Dies hängt vom Zeichensatz ab und auf der Kollation .
F: und bei diesem Vergleich wird zwischen Groß- und Kleinschreibung unterschieden?
A: Ob bei einem bestimmten Vergleich zwischen Groß- und Kleinschreibung unterschieden wird oder nicht, hängt vom Datenbankserver ab; Standardmäßig wird bei SQL Server und MySQL die Groß-/Kleinschreibung nicht beachtet.
In MySQL ist es möglich, Zeichenkettenvergleiche durchzuführen, indem eine Zeichensatzsortierung angegeben wird, bei der die Groß-/Kleinschreibung beachtet wird (der Zeichensatzname endet auf _cs statt auf _ci)
F: B. BALL
A: Standardmäßig ist sowohl in SQL Server als auch in MySQL der Ausdruck
würde TRUE zurückgeben. 'BALL' < 'water'