Groß-/Kleinschreibung bei der Suche in MySQL
In diesem Beitrag wird das Problem untersucht, bei dem MySQL Abfragen mithilfe des LIKE-Operators in Tabellen mit utf8_general_ci-Codierung und MyISAM-Speicher-Engine durchführt Dies führt zu Suchanfragen, bei denen die Groß-/Kleinschreibung beachtet wird.
Um dieses Problem zu beheben, gibt es zwei empfohlene Lösungen:
1. Verwendung von Binärzeichenfolgen:
Durch Anhängen des Schlüsselworts BINARY an den LIKE-Operator kann eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung erreicht werden:
SELECT .... FROM .... WHERE `concatenated` LIKE BINARY '%SearchTerm%';
Dieser Ansatz ist leistungsfähiger als andere, da er Binärzeichenfolgen erzwingt Vergleich, wodurch es effizienter wird.
2. Verwenden von COLLATE:
Alternativ kann das Schlüsselwort COLLATE verwendet werden, um eine bestimmte Sortierregel anzugeben:
SELECT .... FROM .... WHERE `concatenated` like '%SearchTerm%' COLLATE utf8_bin;
Durch die Verwendung der utf8_bin-Sortierung wird ein Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung erzwungen. Obwohl diese Methode mehr Flexibilität bietet, kann sie im Vergleich zum Binärstring-Ansatz geringfügige Auswirkungen auf die Leistung haben.
Das obige ist der detaillierte Inhalt vonWarum wird bei der Suche ohne Berücksichtigung der Groß-/Kleinschreibung in MySQL mit dem LIKE-Operator und der Codierung utf8_general_ci die Groß-/Kleinschreibung beachtet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!