Fonction MySQL INSTR()
En utilisant la fonction instr(), nous pouvons fournir une chaîne et une sous-chaîne. La fonction déterminera si la sous-chaîne existe dans la chaîne source. Si la sous-chaîne existe, la fonction renverra la position de la première occurrence de la sous-chaîne dans la chaîne source.
Si la sous-chaîne n'existe pas dans la chaîne source, la fonction renverra 0.
Voici la syntaxe de la fonction instr() :
INSTR(chaîne_src, sous_chaîne);
La fonction accepte deux paramètres principaux :
- La chaîne_src fait référence à la chaîne source dans laquelle vous souhaitez effectuer la recherche.
- La sub_string définit la sous-chaîne que vous recherchez.
Il est bon de garder à l'esprit que la fonction instr() est insensible à la casse. Par conséquent, la fonction ne localisera que les modèles correspondants sans tenir compte de la casse des caractères,
Pour effectuer une recherche sensible à la casse, vous pouvez utiliser d'autres outils, tels que l'opérateur binaire.
Exemple d'utilisation de la fonction
Les exemples suivants montrent comment nous pouvons utiliser la fonction instr() pour rechercher une sous-chaîne spécifique.
SELECT INSTR('MySQL est un moteur de base de données génial', 'base de données') as pos;
L'exemple ci-dessus renverra la position de départ de la chaîne 'base de données' à partir de la chaîne source. Dans ce cas, la position de la chaîne de la base de données est 21, comme indiqué dans la sortie ci-dessous :
position|---+
21|
Exemple 2
Nous pouvons utiliser les fonctions lower() ou upper pour convertir une chaîne en minuscules ou en majuscules. Cela peut nous aider à surmonter la nature sensible à la casse de la fonction.
Exemple:
SELECT INSTR(lower('MySQL est un moteur de base de données génial'), lower('DATABASE')) as pos;Résultat:
position|
---+
21|
Cela renverra une valeur similaire au premier exemple, car la chaîne source et la sous-chaîne sont converties en minuscules avant l'opération de recherche.
Exemple 3
Nous pouvons également utiliser la fonction instr() avec une colonne de table, comme indiqué dans la syntaxe ci-dessous.
SELECT INSTR(nom_colonne, 'sous-chaîne')FROM nom_table ;
Exemple:
Blogues CRÉER TABLE (id INT NOT NULL AUTO_INCREMENT CLÉ PRIMAIRE,
titre VARCHAR(255) NOT NULL,
contenu TEXTE NON NULL,
date_posted DATE NON NULLE,
auteur VARCHAR(255) NOT NULL
);
Insérez quelques données :
INSERT INTO blogs (titre, contenu, date_posted, auteur)
VALUES ('Mon premier article de blog', 'Ceci est le contenu de mon premier article de blog.', '2022-12-09', 'Jane Doe');
INSERT INTO blogs (titre, contenu, date_posted, auteur)
VALEURS ('Mon deuxième article de blog', 'Ceci est le contenu de mon deuxième article de blog.', '2022-12-10', 'Jane Doe');
INSERT INTO blogs (titre, contenu, date_posted, auteur)
VALEURS ('Mon troisième article de blog', 'Ceci est le contenu de mon troisième article de blog.', '2022-12-11', 'Jane Doe');
sélectionnez * parmi les blogs ;
Tableau résultant :
Nous pouvons utiliser la fonction instr() pour obtenir la position de la sous-chaîne « blog » dans la colonne de contenu, comme indiqué :
sélectionner le titre, l'instruction (contenu, 'post') des blogs ;Résultat:
Conclusion
Dans ce tutoriel, vous avez appris à utiliser la fonction INSTR() dans MySQL pour trouver la position d'une sous-chaîne dans une chaîne. La fonction est sensible à la casse. Par conséquent, vous devrez peut-être utiliser des fonctions telles que inférieur et supérieur pour convertir les chaînes de recherche dans les cas souhaités.