Maison > base de données > tutoriel mysql > Comment puis-je effectuer des recherches par caractères génériques insensibles à la casse dans SQL ?

Comment puis-je effectuer des recherches par caractères génériques insensibles à la casse dans SQL ?

DDD
Libérer: 2025-01-17 13:42:09
original
893 Les gens l'ont consulté
<code>| title           |
|-----------------|
| Elm Tree         |
| elm tree         |
| Red Elm          |
| RED ELM          |
| Oak Tree         |
</code>
Copier après la connexion

La requête SELECT * FROM trees WHERE LOWER(trees.title) LIKE '%elm%' renverra les lignes suivantes :

<code>| title           |
|-----------------|
| Elm Tree         |
| elm tree         |
| Red Elm          |
| RED ELM          |</code>
Copier après la connexion
Copier après la connexion

Il s'agit de la nature insensible à la casse de la recherche à l'aide de la fonction LOWER. Notez que cette approche convertit toutes valeurs en minuscules avant la comparaison, ce qui peut affecter les performances sur de très grandes tables. proposer des méthodes de comparaison alternatives insensibles à la casse.

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

Recherche générique SQL insensible à la casse

Le respect de la casse peut être un défi lors de l'exécution de recherches par caractères génériques dans SQL à l'aide de l'opérateur LIKE. Par exemple, la requête SELECT * FROM trees WHERE trees.title LIKE '%elm%' ne renverra des résultats que si la colonne de titre contient la chaîne exacte « elm ».

Solution : Utiliser la fonction LOWER

MySQL fournit une solution à ce problème en utilisant la fonction LOWER. En incluant la colonne dans la fonction LOWER, la recherche ne respecte plus la casse. Voici comment procéder :

<code class="language-sql">SELECT * FROM trees WHERE LOWER(trees.title) LIKE '%elm%'</code>
Copier après la connexion

Dans cette requête, la fonction LOWER convertit le contenu de la colonne de titre en minuscules avant d'effectuer une recherche LIKE. Par conséquent, la requête renverra toutes les lignes dont la représentation en minuscules du titre contient la chaîne « elm ».

Exemple

Considérons un tableau hypothétique appelé arbres contenant les lignes suivantes :

<code>| title           |
|-----------------|
| Elm Tree         |
| elm tree         |
| Red Elm          |
| RED ELM          |
| Oak Tree         |</code>
Copier après la connexion

RequêteSELECT * FROM trees WHERE LOWER(trees.title) LIKE '%elm%' renverra les lignes suivantes :

<code>| title           |
|-----------------|
| Elm Tree         |
| elm tree         |
| Red Elm          |
| RED ELM          |</code>
Copier après la connexion
Copier après la connexion

Cela démontre la fonction de recherche insensible à la casse à l'aide de la fonction LOWER. Notez que cette méthode convertit toutes les valeurs en minuscules avant de comparer, ce qui peut avoir un impact sur les performances sur les grandes tables. D'autres systèmes de bases de données peuvent fournir d'autres méthodes de comparaison insensibles à la casse.

<code></code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal