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'