Dans SQLite, vous pouvez utiliser le instr()
fonction pour retourner la position d'un caractère donné dans une chaîne.
La fonction renvoie uniquement la position de la première occurrence du caractère (le cas échéant).
Si le caractère n'est pas trouvé, alors il renvoie 0.
Si l'un des arguments est NULL, alors il renvoie NULL.
Comment ça marche
L'instr()
fonction accepte deux arguments. Le premier argument est la chaîne, et le deuxième argument est le caractère que vous souhaitez trouver dans cette chaîne.
Si les arguments sont tous les deux des BLOB, alors il renvoie un octet de plus que le nombre d'octets avant la première occurrence du deuxième argument, ou 0 s'il n'apparaît nulle part dans le premier argument.
La syntaxe ressemble à ceci :
inst(X,Y)
X
est la chaîneY
est le personnage
Exemple
Voici un exemple pour illustrer.
SELECT instr('Black cat', 'a');
Résultat :
3
Ici, je voulais l'emplacement de la lettre a .
Dans ce cas, la lettre apparaît deux fois, et instr()
renvoie l'emplacement de la première occurrence.
Un exemple de base de données
Dans cet exemple, je vais utiliser le tableau suivant :
ProductId ProductName Price ---------- ------------- ---------- 1 Widget Holder 139.5 2 Blue Widget 10.0 3 Red Widget 10.0 4 Green Widget 10.0 5 Widget Stick 89.75 6 Foo Cap 11.99
Je vais rechercher le ProductName colonne pour une lettre.
SELECT
ProductName,
instr(ProductName, 'd')
FROM Products;
Résultat :
ProductName instr(ProductName, 'd') ------------- ----------------------- Widget Holder 3 Blue Widget 8 Red Widget 3 Green Widget 9 Widget Stick 3 Foo Cap 0
Notez que la dernière ligne n'avait pas la lettre et donc 0 a été renvoyé pour cette ligne.
Valeurs NULLES
Comme mentionné, si l'un des arguments est NULL, alors NULL est renvoyé.
SELECT
instr(NULL, 'a'),
instr('Black cat', NULL);
Résultat :
instr(NULL, 'a') instr('Black cat', NULL) ---------------- ------------------------