Mysql
 sql >> Base de données >  >> RDS >> Mysql

Fonctionnement de la fonction INSTR() dans MySQL

Le INSTR() La fonction renvoie la position de la première occurrence d'une sous-chaîne dans une chaîne. Fondamentalement, il fait la même chose que la syntaxe à deux arguments de LOCATE() fonctionne (sauf que l'ordre des arguments est inversé).

Syntaxe

La syntaxe ressemble à ceci :

INSTR(str,substr)

str est la chaîne que vous voulez rechercher, et substr est la sous-chaîne que vous recherchez.

Exemple 1 - Utilisation de base

SELECT INSTR('Cats and dogs like to run', 'dogs') AS Result;

Résultat :

+--------+
| Result |
+--------+
|     10 |
+--------+

Dans ce cas, la chaîne dogs commence à la position 10.

Exemple 2 – Non sensible à la casse

Il n'est pas sensible à la casse :

SELECT 
  INSTR('Cats and dogs like to run', 'DOGS') AS 'Result 1',
  INSTR('Cats and DOGS like to run', 'dogs') AS 'Result 2';

Résultat :

+----------+----------+
| Result 1 | Result 2 |
+----------+----------+
|       10 |       10 |
+----------+----------+

Exemple 3 – Correspondance partielle

Peu importe si votre terme de recherche ne représente qu'une partie d'un mot, il correspondra toujours (après tout, vous recherchez simplement une sous-chaîne dans une chaîne) :

SELECT INSTR('Cats and dogs like to run', 'do') AS Result;

Résultat :

+--------+
| Result |
+--------+
|     10 |
+--------+

Un espace fait toujours partie de la chaîne. Vous pouvez donc rechercher le premier espace si vous en avez besoin :

SELECT INSTR('Cats and dogs like to run', ' ') AS Result;

Résultat :

+--------+
| Result |
+--------+
|      5 |
+--------+

Exemple 4 - Première occurrence uniquement

N'oubliez pas que seule la position de la première occurrence est renvoyée :

SELECT INSTR('Cats and dogs like to run', 'a') AS Result;

Résultat :

+--------+
| Result |
+--------+
|      2 |
+--------+

Exemple 5 - Lorsque la sous-chaîne est introuvable

Si la sous-chaîne n'est pas trouvée, un résultat de 0 est renvoyé :

SELECT INSTR('Cats and dogs like to run', 'rabbit') AS Result;

Résultat :

+--------+
| Result |
+--------+
|      0 |
+--------+

Exemple 6 - Nombre de paramètres incorrect

Si vous omettez l'un des paramètres, vous obtiendrez une erreur :

SELECT INSTR('Cats and dogs like to run') AS Result;

Résultat :

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'

Vous obtiendrez également une erreur si vous fournissez trop de paramètres :

SELECT INSTR('Cats and dogs like to run', 'dogs', 'cats') AS Result;

Résultat :

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'