Frage

Nach der sqlite3 Dokumentation ,

  

Die COLLATE-Klausel nach jedem   Spaltennamen definiert eine Zusammentrag   in dieser Reihenfolge für die Texteinträge verwendet   Säule. Die Standard-Sortierfolge   die Sortierfolge definiert für   daß Spalte in der CREATE TABLE   Aussage. Oder wenn keine Sortierfolge   anders definiert wird, die sich im internen   BINARY Sortierfolge verwendet wird.

Was ist eine Sortierfolge zu tun, und was ist ein binäres Kollatierungssequenz?

War es hilfreich?

Lösung

Es ist die Art und Weise, dass die SQL-Engine Aufträge Daten intern. Binärsortierung tut, was es schon sagt, es macht einen binären Vergleich. Im Allgemeinen ist es das schnellste Sortierungs obwohl ich es nie quantifiziert, wie es Bitmuster überprüft, was bedeutet, es Fall und Akzent unempfindlich ist.

Andere Tipps

Binärsortierung vergleicht die Zeichenfolge Byte für Byte, wie in einer Unicode-Tabelle. Zum Beispiel: A, B, a, b. Eine Groß- und Kleinschreibung Ordnung wäre: a., A, b, B

Der Vorteil Binärsortierung ist seine Geschwindigkeit, als String-Vergleich ist sehr einfach / schnell. Im allgemeinen Fall, Indizes mit binären möglicherweise nicht die erwarteten Ergebnisse für Art produzieren, aber für genaue Übereinstimmungen können sie nützlich sein.

COLLATE NOCASE wirkt sich auch auf Groß- und Kleinschreibung Abfragen.

Wenn Sie eine Spalte mit diesen Werten: 'aa', 'aA'

select * from table where col = 'aa'

Wenn Sie Ihre Spalte mit COLLATE NOCASE erstellt haben, werden sie zurückkehren beide ‚aa‘ und ‚aA‘. Andernfalls, wenn Sie es nicht angegeben haben, wird es nur zurück, aa '.

Sie können auch in einer Abfrage angeben (dies ist langsamer dann, wenn Sie Ihre Spalte mit COLLATE NOCASE erstellt hatten)

select * from table where col = 'aa' COLLATE NOCASE
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top