Heim >Datenbank >MySQL-Tutorial >Warum liefern „Harligt' und „Härligt' in MySQL die gleichen Ergebnisse?

Warum liefern „Harligt' und „Härligt' in MySQL die gleichen Ergebnisse?

Linda Hamilton
Linda HamiltonOriginal
2024-10-25 08:50:02663Durchsuche

Why Do `Harligt` and `Härligt` Return the Same Results in MySQL?

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:

  • Ä = A
  • Ö = O
  • Ü = U

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:

  1. Sortierung ändern: Wechseln Sie zu einer Sortierung, die diese Zeichengleichstellung nicht durchführt, wie z. B. utf8_bin . Diese Entscheidung kann jedoch weitreichendere Auswirkungen auf die Datenverarbeitung haben.
  2. Sortierung für bestimmte Abfragen überschreiben: Für einzelne Abfragen ist es möglich, die Standardsortierung zu überschreiben, indem Sie explizit die gewünschte Sortierung angeben. Zum Beispiel:
<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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn