Résumé: Ce tutoriel vous montre comment utiliser la fonction MySQL INSTR pour retourner la position de la première occurrence d’une chaîne.
Introduction à la fonction MySQL INSTR
parfois, vous voulez localiser une sous-chaîne dans une chaîne ou vérifier si une sous-chaîne existe dans une chaîne. Dans ce cas, vous pouvez utiliser une fonction intégrée de chaîne appelée INSTR
.
Le INSTR
la fonction renvoie la position de la première occurrence d’une sous-chaîne dans une chaîne., Si la sous-chaîne n’est pas trouvée dans le str, la fonction INSTR
renvoie zéro (0).
ce qui suit illustre la syntaxe de la fonctionINSTR
.
Code language: SQL (Structured Query Language) (sql)
Essayer
Le INSTR
fonction accepte deux arguments:
- Le
str
est la chaîne que vous souhaitez rechercher. - Le
substr
est la sous-chaîne que vous souhaitez rechercher.
Le INSTR
fonction n’est pas sensible à la casse., Cela signifie que peu importe si vous passez la minuscule, la majuscule, la casse du titre, etc. les résultats sont toujours les mêmes.
Si vous souhaitez que la fonctionINSTR
effectue des recherches sensibles à la casse sur une chaîne non binaire, vous utilisez l’opérateurBINARY
pour convertir l’argument de la fonctionINSTR
d’une chaîne non binaire en chaîne binaire.
exemples de la fonction MySQL INSTR
l’instruction suivante renvoie la position de la sous-chaîne MySQL dans la chaîneMySQL INSTR
.,
Code language: SQL (Structured Query Language) (sql)
Essayer
La déclaration suivante renvoie le même résultat, parce que le INSTR
fonction est sensible à la casse.,
Code language: SQL (Structured Query Language) (sql)
Essayer
À force de INSTR
fonction de recherche basée sur la casse de la mode, vous utilisez la balise BINARY
opérateur comme suit:
Code language: SQL (Structured Query Language) (sql)
Essayer
Le résultat est différent parce que mysql vs MySQL maintenant avec la balise BINARY
opérateur.
la fonction INSTR par rapport à l’opérateur LIKE
Nous utiliserons la tableproducts
dans l’exemple de base de données.,
Supposons que vous voulez trouver des produits dont le nom contient la balise car
mot clé, vous pouvez utiliser la balise INSTR
fonction comme suit:
Code language: SQL (Structured Query Language) (sql)
Essayer
en plus de la balise INSTR
function, vous pouvez utiliser la balise LIKE
opérateur pour correspondre à la balise Car
schéma.,
Code language: SQL (Structured Query Language) (sql)
Essayer
les Deux requêtes retournent le même résultat. Alors lequel est le plus rapide, l’opérateur INSTR
ou LIKE
?
La réponse est qu’ils sont les mêmes. Ils sont tous deux sensibles à la casse et effectuent des analyses de table complètes.
créons un index sur la colonneproductname
.,
Code language: SQL (Structured Query Language) (sql)
Essayer
Si vous utilisez la balise LIKE
opérateur avec le préfixe de recherche, sur cette colonne indexée, la balise LIKE
opérateur sera plus rapide que le INSTR
fonction.
Voir la déclaration suivante.,
Code language: SQL (Structured Query Language) (sql)
Try It Out
You can check it using the EXPLAIN
statement:
Code language: SQL (Structured Query Language) (sql)
Try It Out
And compare with the following statement that uses the INSTR
function.,
Essayer
Le INSTR
fonction effectue une analyse de la table, même si la balise productname
colonne a un index. En effet, MySQL ne peut faire aucune hypothèse sur la sémantique de la fonction INSTR
, par laquelle MySQL peut utiliser sa compréhension de la sémantique de l’opérateur LIKE
.
le moyen le plus rapide de tester si une sous-chaîne existe dans une chaîne est d’utiliser un index en texte intégral., Cependant, il est nécessaire une configuration et maintenir l’index correctement.
Dans ce tutoriel, vous avez appris comment utiliser la balise INSTR
fonction pour trouver la position de la première occurrence d’une sous-chaîne dans une chaîne.
- ce tutoriel a Été utile?
- Ouinon
Leave a Reply