Sven Rautenberg: Abfrage in MySQL-DB führt zu falschem Ergebnis

Beitrag lesen

Moin!

Ein Inhalt beginnt mit einem 'Ü'. Wenn ich nach dem Anfangsbuchstaben 'Y' suche, dann bekomme ich als Ergebnis genau den Inhalt mit dem Anfangsbuchstabne 'Ü'.

Dann hast du latin1_swedish_ci als Kollation gewählt. In der schwedischen Sprache ist Y = Ü in der Alphabetsortierung.

Um das auf deutsche Verhältnisse zu polen, solltest du latin1_german1_ci oder latin1_german2_ci wählen, je nachdem, ob bei dem Vergleich "Ä" wie "A" behandelt werden soll, oder wie "AE". Case-insensitiv sind die Vergleiche in allen drei Fällen (deshalb "_ci").

Siehe dazu im Detail: http://dev.mysql.com/doc/refman/5.1/en/charset-we-sets.html

Alternativ kannst du natürlich auch auf Unicode umstellen: utf8_general_ci bzw. utf8_unicode_ci. Das hat auch wieder Auswirkungen auf die Sortierung und Identitätsprüfung, siehe http://dev.mysql.com/doc/refman/5.1/en/charset-unicode-sets.html.

- Sven Rautenberg