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
DDDoriginal
2025-01-17 13:42:09895parcourir
<code>| title           |
|-----------------|
| Elm Tree         |
| elm tree         |
| Red Elm          |
| RED ELM          |
| Oak Tree         |
</code>

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>

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>

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>

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>

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>

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!

Déclaration:
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