INSTR()
funktion returnerar positionen för den första förekomsten av en delsträng i en sträng. I grund och botten gör den samma sak som syntaxen med två argument för LOCATE()
funktion gör det (förutom att ordningen på argumenten är omvänd).
Syntax
Syntaxen ser ut så här:
INSTR(str,substr)
Där str
är strängen du vill söka efter, och substr
är understrängen som du söker efter.
Exempel 1 – Grundläggande användning
SELECT INSTR('Cats and dogs like to run', 'dogs') AS Result;
Resultat:
+--------+ | Result | +--------+ | 10 | +--------+
I det här fallet, strängen dogs
börjar på position 10.
Exempel 2 – Ej skiftlägeskänsligt
Det är inte skiftlägeskänsligt:
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 | +----------+----------+
Exempel 3 – Delvis matchning
Det spelar ingen roll om din sökterm bara representerar en del av ett ord, den kommer fortfarande att matcha (trots allt, du söker bara efter en delsträng i en sträng):
SELECT INSTR('Cats and dogs like to run', 'do') AS Result;
Resultat:
+--------+ | Result | +--------+ | 10 | +--------+
Ett mellanslag är fortfarande en del av strängen. Så du kan söka efter det första utrymmet om du behöver:
SELECT INSTR('Cats and dogs like to run', ' ') AS Result;
Resultat:
+--------+ | Result | +--------+ | 5 | +--------+
Exempel 4 – Endast första förekomsten
Kom ihåg att endast positionen för den första förekomsten returneras:
SELECT INSTR('Cats and dogs like to run', 'a') AS Result;
Resultat:
+--------+ | Result | +--------+ | 2 | +--------+
Exempel 5 – När delsträngen inte kan hittas
Om delsträngen inte hittas, ett resultat av 0
returneras:
SELECT INSTR('Cats and dogs like to run', 'rabbit') AS Result;
Resultat:
+--------+ | Result | +--------+ | 0 | +--------+
Exempel 6 – Antal felaktiga parametrar
Om du utelämnar någon av parametrarna får du ett felmeddelande:
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 också ett felmeddelande om du anger för många parametrar:
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'