SQLite: Umlaute und Sort Order / Sortierung

Hallo,

ich verwende eine SQLite-Datenbank (SQLite 2) für eine Kundenverwaltung (PHP-Anwendung). Nun habe ich einen Kunden, dessen Nachnamen mit einem Umlaut beginnt (z.B. „Ölmersheimer“).

Ich habe dann zwei Probleme:

  1. Eine Suche „SELECT * FROM kunden WHERE Nachname LIKE ‚ölmer%‘“ findet den Kunden nicht, weil Umlaute auch unter Verwendung von LIKE case-sensitve sind. Ich müsste also nach ‚Ölmer%‘ suchen, aber das tut man in der Praxis eher nicht.

  2. Bei einer Auflistung aller Kunden erscheint mein fiktiver Herr Ölmersheimer nicht unter O oder Oe, sondern ganz unten nach dem Z - dies entspricht der SQLite-internen Sortierreihenfolge, nicht aber der im Deutschen üblichen.

Kennt jemand für diese beiden Probleme Workarounds oder Lösungsmöglichkeiten?

Viele Grüße
Stefan

Vielleicht eine Idee zu deinem ersten Problem - wandel doch alles in Großbuchstaben per Funktion um.

SELECT * FROM kunden WHERE Upper(Nachname) LIKE Upper(‚ölmer%‘)

Für das andere fehlt mir noch die Idee - Telefon klingelt gerade.

EPa

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Vielleicht eine Idee zu deinem ersten Problem - wandel doch
alles in Großbuchstaben per Funktion um.

SELECT * FROM kunden WHERE Upper(Nachname) LIKE
Upper(‚ölmer%‘)

Für das andere fehlt mir noch die Idee - Telefon klingelt
gerade.

EPa

Hallo,

Vielen Dank. Der Vorschlag klang eigentlich sehr gut, aber leider wird ein kleines „ö“ von der UPPER-Funktion ignoriert und nicht in ein großes „Ö“ umgewandelt. Schade…

Weitere Ideen?

Grüße
Stefan

Hallo,

ich arbeite mit MS SQL. Da hat mein Vorschlag mit Upper wunderbar funktioniert.
SELECT * FROM Kunden
WHERE (UPPER(Nachname) LIKE UPPER(‚ö%‘))

Zu deiner zweiten Anfrage:
Unser MS SQL kann ich die Umlaute mit dem Befehl Replace durch die Vokalkombinationen ersetzen.
Habe nachfolgenden Befehl auf meine Kundendatenbank angewendet:
SELECT REPLACE(UPPER(REPLACE(UPPER(REPLACE(UPPER(Nachname), ‚Ü‘, ‚UE‘)), ‚Ö‘, ‚OE‘)), ‚Ä‘, ‚AE‘) AS NachnameOhneUmlaute FROM Kunden

Viele Grüße
EPa