Heim > Datenbank > MySQL-Tutorial > Wie kann ich in SQL eine Platzhaltersuche durchführen, bei der die Groß- und Kleinschreibung nicht beachtet wird?

Wie kann ich in SQL eine Platzhaltersuche durchführen, bei der die Groß- und Kleinschreibung nicht beachtet wird?

DDD
Freigeben: 2025-01-17 13:42:09
Original
893 Leute haben es durchsucht
<code>| title           |
|-----------------|
| Elm Tree         |
| elm tree         |
| Red Elm          |
| RED ELM          |
| Oak Tree         |
</code>
Nach dem Login kopieren

Die Abfrage SELECT * FROM trees WHERE LOWER(trees.title) LIKE '%elm%' gibt die folgenden Zeilen zurück:

<code>| title           |
|-----------------|
| Elm Tree         |
| elm tree         |
| Red Elm          |
| RED ELM          |</code>
Nach dem Login kopieren
Nach dem Login kopieren

Dies liegt daran, dass bei der Suche mit der LOWER-Funktion alle Werte vor dem Vergleich in Kleinbuchstaben umgewandelt werden, was sich möglicherweise auf die Leistung anderer Datenbanksysteme auswirkt bieten alternative Vergleichsmethoden an, bei denen die Groß- und Kleinschreibung nicht beachtet wird.

How Can I Perform Case-Insensitive Wildcard Searches in SQL?

SQL-Platzhaltersuche ohne Berücksichtigung der Groß-/Kleinschreibung

Die Beachtung der Groß-/Kleinschreibung kann bei der Durchführung von Platzhaltersuchen in SQL mit dem LIKE-Operator eine Herausforderung darstellen. Beispielsweise gibt die Abfrage SELECT * FROM trees WHERE trees.title LIKE '%elm%' nur dann Ergebnisse zurück, wenn die Titelspalte genau die Zeichenfolge „elm“ enthält.

Lösung: Verwenden Sie die LOWER-Funktion

MySQL bietet eine Lösung für dieses Problem mithilfe der LOWER-Funktion. Durch das Einschließen der Spalte in die LOWER-Funktion wird bei der Suche die Groß-/Kleinschreibung nicht beachtet. So geht's:

<code class="language-sql">SELECT * FROM trees WHERE LOWER(trees.title) LIKE '%elm%'</code>
Nach dem Login kopieren

In dieser Abfrage wandelt die LOWER-Funktion den Inhalt der Titelspalte in Kleinbuchstaben um, bevor eine LIKE-Suche durchgeführt wird. Daher gibt die Abfrage alle Zeilen zurück, deren kleingeschriebene Titeldarstellung die Zeichenfolge „elm“ enthält.

Beispiel

Stellen Sie sich eine hypothetische Tabelle namens „Bäume“ vor, die die folgenden Zeilen enthält:

<code>| title           |
|-----------------|
| Elm Tree         |
| elm tree         |
| Red Elm          |
| RED ELM          |
| Oak Tree         |</code>
Nach dem Login kopieren

AbfrageSELECT * FROM trees WHERE LOWER(trees.title) LIKE '%elm%' gibt die folgenden Zeilen zurück:

<code>| title           |
|-----------------|
| Elm Tree         |
| elm tree         |
| Red Elm          |
| RED ELM          |</code>
Nach dem Login kopieren
Nach dem Login kopieren

Dies demonstriert die Suchfunktion ohne Berücksichtigung der Groß-/Kleinschreibung mit der LOWER-Funktion. Beachten Sie, dass diese Methode vor dem Vergleich alle Werte in Kleinbuchstaben umwandelt, was sich auf die Leistung großer Tabellen auswirken kann. Andere Datenbanksysteme bieten möglicherweise alternative Vergleichsmethoden ohne Berücksichtigung der Groß- und Kleinschreibung.

<code></code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich in SQL eine Platzhaltersuche durchführen, bei der die Groß- und Kleinschreibung nicht beachtet 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage