Unicode-Zeichensatz in MySQL: Die „Ä“-Anomalie verstehen
MySQLs Behandlung der Zeichen „ä“, „ö“ und „ü“ als „AAO“ kann bei der Suche verwirrend sein. Um dieses Verhalten zu verstehen, müssen wir in die Welt der Unicode-Zeichensätze und ihrer Kollatierungen eintauchen.
In nicht sprachspezifischen Unicode-Kollatierungen wie utf8_general_ci und utf8_unicode_ci werden bestimmte Unicode-Zeichen als gleichwertig behandelt. Insbesondere werden die Zeichen „Ä“, „Ö“ und „Ü“ auf ihre Basisäquivalente von „A“, „O“ und „U“ normalisiert. Diese Normalisierung wird durchgeführt, um sicherzustellen, dass Zeichen mit ähnlicher phonetischer Aussprache bei Vergleichen und Suchen identisch behandelt werden.
Um diese Normalisierung zu deaktivieren und eine Suche unter Berücksichtigung der Groß- und Kleinschreibung nach der genauen Zeichenfolge „Härligt“ durchzuführen, können Sie utf8_bin verwenden Sortierung:
select * from topics where name='Harligt' COLLATE utf8_bin;
Alternativ können Sie eine andere Sortierung nur für die Abfrage verwenden, z. B. latin1_bin:
select * from topics where name ='Härligt' COLLATE latin1_bin;
Wenn Sie jedoch eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung ohne Ä = benötigen Bei einer Konvertierung müssen Sie einen anderen Ansatz verwenden, da es keine MySQL-Sortierung gibt, die einen Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung ohne implizite Umlautkonvertierung ermöglicht.
Das obige ist der detaillierte Inhalt vonWarum wird \'Ä\' in MySQL-Suchen zu \'AAO\'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!