Wie man text in sqlite3 mit dem angegebenen Gebietsschema?
Sqlite3 standardmäßig Arten nur durch ascii-Buchstaben. Ich habe versucht zu suchen in google, aber das einzige was ich gefunden habe waren Informationen über Sortierungen. Sqlite3 hat nur NOCASE
RTRIM
und BIARY
Sortierungen. Zum hinzufügen von Unterstützung für ein bestimmtes Gebietsschema?
(Ich bin mit es in der Rails-Anwendung)
InformationsquelleAutor der Frage klew | 2009-03-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
SQLite unterstützt integration mit ICU. Laut der Readme-Datei,
sqlite/ext/icu/README.txt
die
sqlite/ext/icu/
Verzeichnis enthält den Quellcode für die SQLite - "Intensivstation" - Erweiterung, einintegration der "International Components for Unicode" Bibliothek mit SQLite.
InformationsquelleAutor der Antwort Doug Currie
Ich nahm Doug Currie Antwort, aber ich möchte hinzufügen, dass einige "Algorithmus", wie es zu tun, weil sqlite3-Dokumentation ist sehr seltsam (zumindest für mich).
Ok, wir haben die Arbeit sqlite3 und jetzt:
Download ICU-Erweiterung für sqlite
Kompilieren:
Es ist für Linux. Ich musste auch für die Installation zusätzlicher ICU-Entwicklungs-Paket:
Arbeite ich auf 64-bit-Architektur, und ich bekomme Fehler mit
__relocation R_X86_64_32S__
(was auch immer es bedeutet :). GCC vorgeschlagen hinzufügen-fPIC
zu kompilieren Optionen, und es half.Laufen sqlite3. Wir können laden Sie die Erweiterung mit dem Befehl:
Davon aus, dass es im aktuellen Verzeichnis, dann können wir auch den ganzen Pfad angeben.
Erstellen neue Sortierung:
Der erste parameter ist der gewünschte Gebietsschema und die zweite ist, es ist (es kann alles sein).
Nun Sortieren wir die Daten mit unseren neuen Gebietsschema:
Und es ist groß-und Kleinschreibung!
InformationsquelleAutor der Antwort klew
Wenn Sie nicht leisten können, kompilieren Sie den ICU-Erweiterung können Sie ein UDF das gleiche zu tun. In PHP/PDO:
Beispiel:
Ich erwarte nicht, dass dieser Ansatz effizienter als der nativen Erweiterung, aber es ist sicherlich mehr tragbar.
InformationsquelleAutor der Antwort Alix Axel