Heim > Datenbank > MySQL-Tutorial > Hauptteil

Warum beachtet der LIKE-Operator von MySQL die Groß-/Kleinschreibung, wenn eine Binärzeichenfolge verwendet wird?

Barbara Streisand
Freigeben: 2024-11-07 19:00:03
Original
408 Leute haben es durchsucht

Why is MySQL's LIKE Operator Case Sensitive When Using a Binary String?

Groß-/Kleinschreibung bei LIKE in MySQL

Beim Durchführen einer LIKE-Suche in MySQL mit der Abfrage „SELECT concat_ws(title,description) as concatenated NACH der Verkettung von LIKE '%SearchTerm%';" fällt möglicherweise auf, dass bei der Suche die Groß-/Kleinschreibung beachtet wird, obwohl die Tabelle mit der Sortierung utf8_general_ci und der MyISAM-Speicher-Engine codiert ist.

Der Grund für dieses Verhalten ist folgender Der LIKE-Operator führt Vergleiche unter Berücksichtigung der Groß-/Kleinschreibung durch, wenn einer der Operanden eine Binärzeichenfolge ist. In diesem Fall handelt es sich bei dem „verketteten“ Feld um eine Binärzeichenfolge, wodurch bei der Suche die Groß-/Kleinschreibung berücksichtigt wird.

Um dieses Problem zu beheben und bei der Suche die Groß-/Kleinschreibung nicht zu berücksichtigen, wird empfohlen, das Schlüsselwort BINARY mit LIKE zu verwenden Operator:

SELECT .... FROM .... WHERE `concatenated` LIKE BINARY '%SearchTerm%';
Nach dem Login kopieren

Dadurch wird sichergestellt, dass der Zeichenfolgenvergleich binär durchgeführt wird, wobei alle Groß-/Kleinschreibungsunterschiede ignoriert werden.

Alternativ kann das Schlüsselwort COLLATE zusammen mit der Sortierung utf8_bin verwendet werden, um das zu erstellen Suche ohne Berücksichtigung der Groß-/Kleinschreibung:

SELECT ....
FROM ....
WHERE `concatenated` like '%SearchTerm%' COLLATE utf8_bin;
Nach dem Login kopieren

Beide Methoden ändern effektiv das Suchverhalten, sodass die Groß-/Kleinschreibung nicht berücksichtigt wird, während die Leistungsvorteile der Sortierung utf8_general_ci erhalten bleiben.

Das obige ist der detaillierte Inhalt vonWarum beachtet der LIKE-Operator von MySQL die Groß-/Kleinschreibung, wenn eine Binärzeichenfolge verwendet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!