I MySQL er POSITION()
funktion returnerer positionen for den første forekomst af en understreng i strengen.
Denne funktion er faktisk et synonym for LOCATE()
, men med en lidt anden syntaks. LOCATE()
Funktionen har også ekstra funktionalitet, idet den giver dig mulighed for at definere en startposition fra din søgning.
Syntaks
Den grundlæggende syntaks lyder sådan her:
POSITION(substr IN str)
Hvor substr
er understrengen og str
er strengen.
Eksempel 1 – Grundlæggende brug
SELECT POSITION('Cat' IN 'The Cat') Result;
Resultat:
+--------+ | Result | +--------+ | 5 | +--------+
Eksempel 2 – Versalfølsomhed
POSITION()
funktionen er multibytesikker og skelner kun mellem store og små bogstaver, hvis mindst ét argument er en binær streng.
Så det følgende eksempel skiller ikke mellem store og små bogstaver:
SELECT POSITION('Cat' IN 'The Cat') Result;
Resultat:
+--------+ | Result | +--------+ | 5 | +--------+
Eksempel 3 – Ingen match
Funktionen returnerer 0
hvis understrengen ikke findes i strengen:
SELECT POSITION('Dog' IN 'The cat') Result;
Resultat:
+--------+ | Result | +--------+ | 0 | +--------+
Eksempel 4 – Indlejrede understrenge
Vær forsigtig, når du vælger understrengen. Hvis det er en del af et andet ord, kan du få en falsk positiv:
SELECT POSITION('Cat' IN 'Good Catch!') Result;
Resultat:
+--------+ | Result | +--------+ | 6 | +--------+
Hvis du kun leder efter kat , dyret, ville dette være en falsk positiv.
Eksempel 5 – Kun første gang
Husk, denne funktion returnerer kun positionen for den første forekomst af understrengen. Eventuelle efterfølgende forekomster ignoreres:
SELECT POSITION('Cat' IN 'My cat is bigger than your cat') Result;
Resultat:
+--------+ | Result | +--------+ | 4 | +--------+
Eksempel 6 – NULL-argumenter
Hvis nogen af argumenterne er NULL
, resultatet er NULL
:
SELECT POSITION('Cat' IN NULL) 'Result 1', POSITION(NULL IN 'The Cat') 'Result 2';
Resultat:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | NULL | NULL | +----------+----------+
Som nævnt kan du også bruge LOCATE()
funktion, som giver dig mulighed for at definere en startposition for din søgning.