<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.
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!