Mascha Geschrieben 19. Mai 2006 Geschrieben 19. Mai 2006 Ausgangssituation: Datenbanktabelle mit deutschen und russischen Inhalten in UTF-8, die ueber ein Web-Formular abgefragt wird. Um eine Suche zu vereinfachen, wird der eingegebene Suchstring von Punktuation befreit, die deutschen Umlaute und ß werden umgewandelt (ae, oe, ue, ss), und alle Grossbuchstaben in kleine. In der Tabelle gibt es von jedem urspruenglich vorhandenen Feld auch eine bereinigte Version ohne Umlaute und Satzzeichen. Es werden jeweils nur die bereinigten Felder nach dem String durchsucht, ausgegeben wird der Inhalt der urspruenglichen Felder. Im Prinzip ist es so, dass Suchvorgaenge in MySQL nicht case-sensitive sind, aber fuer Kyrillisch scheint dies nicht so zu sein. Fuer MySQL 4.x habe ich keinerlei Hinweise gefunden, aber auf http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html heisst es: "By default, MySQL searches are not case sensitive (although there are some character sets that are never case insensitive, such as czech)." Ich habe versucht, die Datensaetze direkt in der DB umzuwandeln mit lower() und lcase(), das zerschiesst allerdings saemtliche kyrillischen Buchstaben (und auch Umlaute, so denn welche vorkommen). Somit habe ich eigentlich gedacht, dass ich das Problem ueber ein PHP-Skript loese, das einen Datensatz nach dem anderen einliest, mit mb_strtolower() umwandelt und zurueckschreibt. Trotzdem interessiert es mich, ob jemand eine Methode kennt, das direkt in MySQL zu erledigen.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden