Heim  >  Artikel  >  Datenbank  >  Eindeutige MySQL-Felder: Wie gehe ich mit nachgestellten Leerzeichen um?

Eindeutige MySQL-Felder: Wie gehe ich mit nachgestellten Leerzeichen um?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-30 02:40:03468Durchsuche

  MySQL Unique Fields: How to Handle Trailing Spaces?

MySQL-Datenbank mit eindeutigen Feldern: Leerzeichen am Ende ignorieren

Bei der Arbeit mit MySQL-Datenbanken kann es zu einem Problem kommen, bei dem eindeutige Felder am Ende Leerzeichen ignorieren . Dies kann auftreten, wenn Sie Eingaben mit unterschiedlichen Abständen links oder rechts von Wörtern speichern müssen, die Datenbank die nachgestellten Leerzeichen jedoch automatisch schneidet.

Dieses Problem ist auf die Standardverarbeitung von Zeichenfolgen durch MySQL zurückzuführen, bei der nachgestellte Leerzeichen ignoriert werden Vergleiche. Um dieses Verhalten zu verstehen, berücksichtigen Sie Folgendes:

<br>VARCHAR my_field UNIQUE NOT NULL;<br>

Wenn Sie „apple“ und „ apple' (mit nachgestelltem Leerzeichen) in dieses Feld ein, schlägt die eindeutige Prüfung fehl, da MySQL beide Werte als identisch behandelt.

Mögliche Lösungen:

  1. Werte als VARBINARY speichern:
    Konvertieren Sie die Eingabe in VARBINARY, um das genaue Bytemuster, einschließlich nachfolgender Leerzeichen, beizubehalten.

<br>ALTER TABLE my_table MODIFY my_field VARBINARY (255) UNIQUE;<br>

  1. NO PAD-Sortierungen verwenden (MySQL 8.0):
    MySQL 8.0 und höher unterstützt Sortierungen mit NO PAD Attribut, das nachfolgende Leerzeichen bei Zeichenfolgenvergleichen beibehält.


CREATE TABLE my_table (
my_field VARCHAR(255) UNIQUE COLLATE utf8mb4_0900_ai_ci
);
< ;/pre>

  1. Benutzerdefinierte Sortierung (nicht empfohlen):
    Sie können eine benutzerdefinierte Sortierung mit dem NO PAD-Attribut erstellen, dies wird jedoch nicht empfohlen, da es zu Problemen führen kann Kompatibilitätsprobleme.

Fazit:

Indem Sie das Standardverhalten von MySQL verstehen und die entsprechenden Lösungen implementieren, können Sie sicherstellen, dass Ihre eindeutigen Felder nachfolgende Leerzeichen wie folgt behandeln gewünscht.

Das obige ist der detaillierte Inhalt vonEindeutige MySQL-Felder: Wie gehe ich mit nachgestellten Leerzeichen um?. 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