De INSTR()
functie retourneert de positie van het eerste voorkomen van een subtekenreeks binnen een tekenreeks. In principe doet het hetzelfde als de syntaxis met twee argumenten van de LOCATE()
functie doet (behalve dat de volgorde van de argumenten is omgekeerd).
Syntaxis
De syntaxis gaat als volgt:
INSTR(str,substr)
Waar str
is de tekenreeks die u wilt zoeken, en substr
is de substring waarnaar u zoekt.
Voorbeeld 1 – Basisgebruik
SELECT INSTR('Cats and dogs like to run', 'dogs') AS Result;
Resultaat:
+--------+ | Result | +--------+ | 10 | +--------+
In dit geval is de string dogs
begint op positie 10.
Voorbeeld 2 – Niet hoofdlettergevoelig
Het is niet hoofdlettergevoelig:
SELECT INSTR('Cats and dogs like to run', 'DOGS') AS 'Result 1', INSTR('Cats and DOGS like to run', 'dogs') AS 'Result 2';
Resultaat:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | 10 | 10 | +----------+----------+
Voorbeeld 3 – Gedeeltelijke overeenkomst
Het maakt niet uit of je zoekterm slechts een deel van een woord vertegenwoordigt, het zal nog steeds overeenkomen (je zoekt tenslotte gewoon naar een substring binnen een string):
SELECT INSTR('Cats and dogs like to run', 'do') AS Result;
Resultaat:
+--------+ | Result | +--------+ | 10 | +--------+
Een spatie maakt nog steeds deel uit van de string. U kunt dus indien nodig naar de eerste spatie zoeken:
SELECT INSTR('Cats and dogs like to run', ' ') AS Result;
Resultaat:
+--------+ | Result | +--------+ | 5 | +--------+
Voorbeeld 4 – Alleen eerste keer
Onthoud dat alleen de positie van het eerste exemplaar wordt geretourneerd:
SELECT INSTR('Cats and dogs like to run', 'a') AS Result;
Resultaat:
+--------+ | Result | +--------+ | 2 | +--------+
Voorbeeld 5 – Wanneer de substring niet kan worden gevonden
Als de subtekenreeks niet wordt gevonden, een resultaat van 0
wordt geretourneerd:
SELECT INSTR('Cats and dogs like to run', 'rabbit') AS Result;
Resultaat:
+--------+ | Result | +--------+ | 0 | +--------+
Voorbeeld 6 – Onjuist aantal parameters
Als u een van de parameters weglaat, krijgt u een foutmelding:
SELECT INSTR('Cats and dogs like to run') AS Result;
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'
U krijgt ook een foutmelding als u te veel parameters opgeeft:
SELECT INSTR('Cats and dogs like to run', 'dogs', 'cats') AS Result;
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'