SQlite Abfrage groß/kleinschreibung

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
py_lo
User
Beiträge: 60
Registriert: Freitag 20. März 2009, 09:12

Hallo zusammen,

Ich nutze sqlite3 und bin auf das Problem gestossen das in meiner
Abfrage z.B. "Müller" steht - jedoch in der DB "MÜLLER" gespeichert ist.

Bekomme also in dem Fall keine Rückgabe.

Aus der SQLITE hilfe:
The default configuration of SQLite only supports case-insensitive comparisons of ASCII characters.
Sagt mir doch das bei unicode zeichen keine groß/klein schreibungsunabhängigkeit gegeben ist - oder?

Aber was tun? In ASCII kann es ja nicht wandeln wg. der Umlaute.
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Nimm ein `_` als Platzhalter. Also `WHERE name LIKE "m_ller"`.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
py_lo
User
Beiträge: 60
Registriert: Freitag 20. März 2009, 09:12

Uhm ja, aber damit habe ich das Problem doch nicht behoben - ich
Übergebe bei der Abfrage utf-8 kodiert, da habe ich kein Problem mit
Umlauten sondern das er zwischen zwischen Groß- und Kleinschreibung
unterscheidet...

Außerdem brauche ich eine eindeutige Identifizierung - das könnte ja
mit Platzhalter nu auch "möller" sein...
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Ich meine ich habe gelesen, das das ein Bug ist.

Da ist es ja:
A bug: SQLite only understands upper/lower case for ASCII characters by default. The LIKE operator is case sensitive by default for unicode characters that are beyond the ASCII range. For example, the expression 'a' LIKE 'A' is TRUE but 'æ' LIKE 'Æ' is FALSE.)
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

py_lo
User
Beiträge: 60
Registriert: Freitag 20. März 2009, 09:12

:( Tja, ich weiss nicht so recht - in reinem python ist da dann wohl nix zu machen,
wie geht Ihr denn mit dem Problem um? Ich brauche sqlite schon aufgrund
der vergleichsweise geringen Größe.

Und es Bug ist es demnach ja nicht sondern ein 'absichtlich' fehlendes
feature :mrgreen:
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Ich hätte gedacht, http://docs.python.org/library/sqlite3. ... e_function würde helfen.

Stefan
py_lo
User
Beiträge: 60
Registriert: Freitag 20. März 2009, 09:12

Dann werd ich mich da mal einlesen, danke - was ich im vorwege nicht verstehe
...case-insensitive comparisons and case conversions requires tables and logic that would nearly double the size of the SQLite library
- und das soll ich mal eben in einer kleiner Funktion in Python erledigen können?

Naja mal gucken...
Antworten