In MySQL, de POSITION()
functie retourneert de positie van het eerste voorkomen van een subtekenreeks binnen de tekenreeks.
Deze functie is eigenlijk een synoniem voor LOCATE()
, maar met een iets andere syntaxis. De LOCATE()
functie heeft ook extra functionaliteit, in die zin dat u een startpositie voor uw zoekopdracht kunt definiëren.
Syntaxis
De basissyntaxis gaat als volgt:
POSITION(substr IN str)
Waar substr
is de substring en str
is de snaar.
Voorbeeld 1 – Basisgebruik
SELECT POSITION('Cat' IN 'The Cat') Result;
Resultaat:
+--------+ | Result | +--------+ | 5 | +--------+
Voorbeeld 2 – Hoofdlettergevoeligheid
De POSITION()
functie is multibyte veilig en is alleen hoofdlettergevoelig als ten minste één argument een binaire tekenreeks is.
Het volgende voorbeeld is dus niet hoofdlettergevoelig:
SELECT POSITION('Cat' IN 'The cat') Result;
Resultaat:
+--------+ | Result | +--------+ | 5 | +--------+
Voorbeeld 3 – Geen overeenkomst
De functie retourneert 0
als de substring niet binnen de string wordt gevonden:
SELECT POSITION('Dog' IN 'The cat') Result;
Resultaat:
+--------+ | Result | +--------+ | 0 | +--------+
Voorbeeld 4 – Ingesloten substrings
Wees voorzichtig bij het kiezen van de subtekenreeks. Als het deel uitmaakt van een ander woord, kunt u een vals positief resultaat krijgen:
SELECT POSITION('Cat' IN 'Good Catch!') Result;
Resultaat:
+--------+ | Result | +--------+ | 6 | +--------+
Als u alleen op zoek bent naar kat , het dier, zou dit een vals positief zijn.
Voorbeeld 5 – Alleen eerste keer
Onthoud, deze functie retourneert alleen de positie van de eerste voorkomen van de substring. Alle volgende gebeurtenissen worden genegeerd:
SELECT POSITION('Cat' IN 'My cat is bigger than your cat') Result;
Resultaat:
+--------+ | Result | +--------+ | 4 | +--------+
Voorbeeld 6 – NULL-argumenten
Als een van de argumenten NULL
. is , het resultaat is NULL
:
SELECT POSITION('Cat' IN NULL) 'Result 1', POSITION(NULL IN 'The Cat') 'Result 2';
Resultaat:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | NULL | NULL | +----------+----------+
Zoals vermeld, kunt u ook de LOCATE()
. gebruiken functie, waarmee u een startpositie voor uw zoekopdracht kunt definiëren.