Fallstricke basierend auf MySQL-Standardsortierregeln

Fallstricke basierend auf MySQL-Standardsortierregeln

Der Standardtyp varchar in MySQL ist case-insensitive (insensitive). Wenn Sie möchten, dass MySQL case-sensitiv ist, müssen Sie die Sortierregeln festlegen:

utf8_bin speichert jedes Zeichen in einer Zeichenfolge als Binärdaten und unterscheidet zwischen Groß- und Kleinbuchstaben.

utf8_genera_ci unterscheidet nicht zwischen Groß- und Kleinschreibung. ci ist die Abkürzung für case insensitive (Kassenschutz), was bedeutet, dass die Groß- und Kleinschreibung nicht berücksichtigt wird.

utf8_general_cs unterscheidet zwischen Groß- und Kleinschreibung. cs ist die Abkürzung für „Case Sensitive“.

Bei der Verwendung von utf8_genera_ci wird die Groß-/Kleinschreibung nicht beachtet. Dies führt zu Problemen, wenn der Inhalt dieses Felds die Groß-/Kleinschreibung beachtet, z. B. wenn es als Code oder Bestätigungscode verwendet wird, bei dem die Groß-/Kleinschreibung beachtet wird.

Die Option utf8_general_cs ist generell nicht verfügbar, daher kann zur Unterscheidung von Groß- und Kleinschreibung nur utf8_bin verwendet werden.

1) Das Festlegen der Sortierregeln ist umkehrbar. Wenn die zuvor festgelegten Sortierregeln die Anforderungen nicht erfüllen, können nach dem Ändern der Sortierregeln verstümmelte Zeichen auftreten. Wenn die ursprünglichen Sortierregeln wiederhergestellt werden, verschwinden die verstümmelten Zeichen.

2) Sie können den varchar-Typ in varbinary ändern

3) Wenn Sie bereits die Standardsortierregel utf8_genera_ci verwendet haben und die Ergebnisse case-sensitiv abfragen möchten, können Sie dies bei der Abfrage einschränken:

binäre Spalte aus Tabelle auswählen;

oder

Wählen Sie Spalte2 aus der Tabelle, in der sich die binäre Spalte befindet;

Ergänzung: Zeichensatz und Sortierung in MySQL

Zeichensatz:

Zeichen ist der allgemeine Begriff für verschiedene Texte und Symbole, und Zeichensatz ist eine Sammlung von Zeichen. Gängige Zeichensatznamen: ASCII-Zeichensatz, GB2312-Zeichensatz, BIG5-Zeichensatz, GB18030-Zeichensatz, Unicode-Zeichensatz usw.

Die Zeichenkodierung ist erforderlich, damit Computer Text in verschiedenen Zeichensätzen erkennen können. Daher verwenden einige Zeichensätze 2 Bytes pro Zeichen und einige Zeichensätze verwenden 3 Bytes pro Zeichen.

Sortierregeln: Beispiele

Was ist der Unterschied zwischen utf_bin und utf_general_ci?

ci steht für Case Insensitive, was so viel heißt wie „Groß-/Kleinschreibung nicht berücksichtigen“. a und A werden bei der Zeichenbeurteilung gleich behandelt;

bin ist binär, a und A werden unterschiedlich behandelt.

Bei utf8_general_ci wird die Groß-/Kleinschreibung nicht berücksichtigt. Sie sollten dies bei der Registrierung Ihres Benutzernamens und Ihrer E-Mail-Adresse verwenden.

utf8_general_cs unterscheidet zwischen Groß- und Kleinschreibung. Wenn Sie dies für Ihren Benutzernamen und Ihre E-Mail-Adresse verwenden, hat dies negative Folgen.

utf8_bin: Zeichenfolge. Jede Zeichenfolge wird als Binärdaten gespeichert. Es unterscheidet zwischen Groß- und Kleinschreibung und kann binäre Inhalte speichern.

Daher beschreiben die Sortierregeln hauptsächlich, ob zwischen Groß- und Kleinschreibung unterschieden wird und wie die Speicherung erfolgt.

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • Beispiel für utf8mb4-Sortierung in MySQL
  • Sortieren von MySQL-Aggregatfunktionen
  • MySQL-Sortierung mittels Index-Scan
  • Einige weniger bekannte Sortiermethoden in MySQL
  • Beschreibung der chinesischen Sortierregeln für MySQL
  • MySQL-Sortierprinzipien und Fallanalyse
  • Sortierung und Paginierung von MySQL-Abfragen
  • So verwenden Sie Indizes zur Optimierung von MySQL ORDER BY-Anweisungen
  • Mysql-Sortierung und Paginierung (Order by & Limit) und vorhandene Fallstricke
  • Details zur MySQL-Sortierfunktion

<<:  Einfache Installation des vi-Befehls im Docker-Container

>>:  Einfaches Beispiel zum Hinzufügen und Entfernen von HTML-Knoten

Artikel empfehlen

Index-Skip-Scan in MySQL 8.0

Vorwort MySQL 8.0.13 unterstützt nun den Index-Sk...

JavaScript, um den Effekt des Klickens auf das Untermenü zu erzielen

In diesem Artikel wird der spezifische JavaScript...

Lösung für das Root-Passwort-Anmeldeproblem in MySQL 5.7

Nachdem ich herausgefunden hatte, dass der vorher...

Gespeicherte MySQL-Prozeduren und allgemeine Funktionscodeanalyse

Das Konzept der gespeicherten MySQL-Prozedur: Ein...

js, um eine einfache Lotteriefunktion zu erreichen

In diesem Artikel wird der spezifische Code von j...

Beispielcode zur Implementierung der Alipay-Sandbox-Zahlung mit Vue+SpringBoot

Laden Sie zunächst eine Reihe von Dingen aus der ...

Detaillierte Erklärung des Responsive-Prinzips von Vue3

Inhaltsverzeichnis Überprüfung der responsiven Pr...

So ermitteln Sie die Ausführungszeit eines Befehls oder Prozesses in Linux

Auf Unix-ähnlichen Systemen wissen Sie möglicherw...

Vue implementiert die Funktionen Vergrößern, Verkleinern und Ziehen

In diesem Artikelbeispiel wird der spezifische Co...

Responsive Webdesign lernen (2) — Können Videos responsiv gemacht werden?

Rezension der vorherigen Folge: Gestern haben wir...

So bereinigen Sie schnell Milliarden von Daten in einer MySQL-Datenbank

Heute habe ich eine Festplattenalarm-Ausnahme erh...