I MySQL, POSITION()
funktion returnerar positionen för den första förekomsten av en delsträng i strängen.
Denna funktion är faktiskt en synonym för LOCATE()
, men med en lite annorlunda syntax. LOCATE()
Funktionen har också extra funktionalitet, genom att den låter dig definiera en startposition för din sökning.
Syntax
Den grundläggande syntaxen ser ut så här:
POSITION(substr IN str)
Där substr
är delsträngen och str
är strängen.
Exempel 1 – Grundläggande användning
SELECT POSITION('Cat' IN 'The Cat') Result;
Resultat:
+--------+ | Result | +--------+ | 5 | +--------+
Exempel 2 – skiftlägeskänslighet
POSITION()
funktionen är multibyte säker och är skiftlägeskänslig endast om minst ett argument är en binär sträng.
Så följande exempel är skiftlägesokänsligt:
SELECT POSITION('Cat' IN 'The cat') Result;
Resultat:
+--------+ | Result | +--------+ | 5 | +--------+
Exempel 3 – Ingen matchning
Funktionen returnerar 0
om delsträngen inte finns i strängen:
SELECT POSITION('Dog' IN 'The cat') Result;
Resultat:
+--------+ | Result | +--------+ | 0 | +--------+
Exempel 4 – Inbäddade delsträngar
Var försiktig när du väljer delsträng. Om det är en del av ett annat ord kan du få ett falskt positivt:
SELECT POSITION('Cat' IN 'Good Catch!') Result;
Resultat:
+--------+ | Result | +--------+ | 6 | +--------+
Om du bara letar efter katt , djuret, skulle detta vara ett falskt positivt.
Exempel 5 – Endast första förekomsten
Kom ihåg att den här funktionen endast returnerar positionen för den första förekomsten av delsträngen. Eventuella efterföljande händelser ignoreras:
SELECT POSITION('Cat' IN 'My cat is bigger than your cat') Result;
Resultat:
+--------+ | Result | +--------+ | 4 | +--------+
Exempel 6 – NULL-argument
Om något av argumenten är NULL
, resultatet är NULL
:
SELECT POSITION('Cat' IN NULL) 'Result 1', POSITION(NULL IN 'The Cat') 'Result 2';
Resultat:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | NULL | NULL | +----------+----------+
Som nämnts kan du också använda LOCATE()
funktion, som låter dig definiera en startposition för din sökning.