INSTR()
funktion returnerer positionen for den første forekomst af en understreng i en streng. Grundlæggende gør det det samme som to-argumentsyntaksen for LOCATE()
funktion gør (bortset fra at rækkefølgen af argumenterne er omvendt).
Syntaks
Syntaksen ser sådan ud:
INSTR(str,substr)
Hvor str
er den streng, du vil søge efter, og substr
er den understreng, du søger efter.
Eksempel 1 – Grundlæggende brug
SELECT INSTR('Cats and dogs like to run', 'dogs') AS Result;
Resultat:
+--------+ | Result | +--------+ | 10 | +--------+
I dette tilfælde er strengen dogs
starter ved position 10.
Eksempel 2 – Der skelnes ikke mellem store og små bogstaver
Der skelnes ikke mellem store og små bogstaver:
SELECT INSTR('Cats and dogs like to run', 'DOGS') AS 'Result 1', INSTR('Cats and DOGS like to run', 'dogs') AS 'Result 2';
Resultat:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | 10 | 10 | +----------+----------+
Eksempel 3 – Delvis match
Det er lige meget, om dit søgeord kun repræsenterer en del af et ord, det vil stadig matche (du søger trods alt blot efter en understreng i en streng):
SELECT INSTR('Cats and dogs like to run', 'do') AS Result;
Resultat:
+--------+ | Result | +--------+ | 10 | +--------+
Et mellemrum er stadig en del af strengen. Så du kan søge efter den første plads, hvis du har brug for at:
SELECT INSTR('Cats and dogs like to run', ' ') AS Result;
Resultat:
+--------+ | Result | +--------+ | 5 | +--------+
Eksempel 4 – Kun første forekomst
Husk, kun positionen for den første forekomst returneres:
SELECT INSTR('Cats and dogs like to run', 'a') AS Result;
Resultat:
+--------+ | Result | +--------+ | 2 | +--------+
Eksempel 5 – Når understrengen ikke kan findes
Hvis understrengen ikke findes, er resultatet 0
returneres:
SELECT INSTR('Cats and dogs like to run', 'rabbit') AS Result;
Resultat:
+--------+ | Result | +--------+ | 0 | +--------+
Eksempel 6 – Forkert parametertælling
Hvis du udelader nogen af parametrene, får du en fejlmeddelelse:
SELECT INSTR('Cats and dogs like to run') AS Result;
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'
Du får også en fejl, hvis du angiver for mange parametre:
SELECT INSTR('Cats and dogs like to run', 'dogs', 'cats') AS Result;
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'