Mascha Geschrieben 19. Mai 2006 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.