MySQLs Behandlung von Unicode-Zeichen: Ä, Ö und Ü
Es ist rätselhaft, bei der Suche nach „Harligt“ auf identische Abfrageergebnisse zu stoßen " und "Härligt" in MySQL. Dieses Verhalten ist auf die Standard-Sortierungseinstellungen von MySQL zurückzuführen, die bestimmte Unicode-Zeichen gleichsetzen.
Die nicht sprachspezifischen Unicode-Sortierungen von MySQL, wie z. B. utf8_general_ci und utf8_unicode_ci, behandeln bestimmte Zeichen als gleichwertig, nämlich:
Dadurch nehmen die beiden Abfragen alle drei Zeichen als identisch wahr und liefern somit übereinstimmende Ergebnisse .
Um dieses Problem zu beheben, gibt es zwei Möglichkeiten:
<code class="sql">select * from topics where name='Harligt' COLLATE utf8_bin;</code>
Dieser Ansatz ermöglicht eine Suche unter Berücksichtigung der Groß- und Kleinschreibung ohne die automatische Zeichenkonvertierung.
Wenn eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung, aber ohne die Zeichenkonvertierung gewünscht wird, MySQL bietet derzeit keine geeignete Sortierung an. Es gibt jedoch laufende Diskussionen und mögliche Lösungen innerhalb der Community.
Das obige ist der detaillierte Inhalt vonWarum liefern „Harligt' und „Härligt' in MySQL die gleichen Ergebnisse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!