Laut der sqlite3-Dokumentation
Die COLLATE-Klausel folgt jedem Spaltenname definiert eine Sortierung Sequenz für Texteingaben in diesem verwendet Säule. Die standardmäßige Sortierfolge ist die Sortierfolge definiert für diese Spalte in der CREATE TABLE Erklärung. Oder wenn keine Sortierfolge ist anders definiert, das eingebaute BINARY-Sortierfolge wird verwendet.
Was macht eine Sortierfolge und was ist eine BINARY-Sortierfolge?
Es ist die Art und Weise, wie die SQL-Suchmaschine Daten intern bestellt. Binary Collation macht das, was es vorschlägt, es macht einen binären Vergleich. Im Allgemeinen ist es die schnellste Kollatierung, obwohl ich es nie quantifiziert habe, da es Bitmuster überprüft, was bedeutet, dass es fall- und akzentunempfindlich ist.
Die binäre Sortierung vergleicht Ihre Zeichenfolge Byte für Byte wie in einer Unicode-Tabelle. Zum Beispiel: A, B, a, b. Eine Groß- und Kleinschreibung Reihenfolge wäre: a, A, b, B.
Der Vorteil der binären Sortierung ist ihre Geschwindigkeit, da der String-Vergleich sehr einfach / schnell ist. Im Allgemeinen ergeben Indizes mit Binärdaten möglicherweise keine erwarteten Ergebnisse für die Sortierung, für genaue Übereinstimmungen können sie jedoch nützlich sein.
COLLATE NOCASE wirkt sich auch auf Groß- und Kleinschreibung aus.
Wenn Sie eine Spalte mit diesen Werten haben: 'aa', 'aA'
%Vor%Wenn Sie Ihre Spalte mit COLLATE NOCASE erstellt haben, wird sowohl 'aa' als auch 'aA' zurückgegeben. Andernfalls, wenn Sie es nicht angeben, gibt es nur 'aa' zurück.
Sie können es auch in einer Abfrage angeben (das ist langsamer, als wenn Sie Ihre Spalte mit COLLATE NOCASE erstellt hätten)
%Vor%