In MariaDB, de RLIKE
operator wordt gebruikt om te bepalen of een tekenreeks al dan niet overeenkomt met een reguliere expressie. Het is een synoniem voor REGEXP
.
Als de tekenreeks overeenkomt met de opgegeven reguliere expressie, is het resultaat 1
, anders is het 0
.
Syntaxis
De syntaxis gaat als volgt:
expr RLIKE pat
Waar expr
is de invoerreeks en pat
is de reguliere expressie waarvoor je de string test.
Voorbeeld
Hier is een voorbeeld van het gebruik van deze operator in een SELECT
verklaring:
SELECT 'Tweet' RLIKE '^Tw.*t$';
Resultaat:
+-------------------------+ | 'Tweet' RLIKE '^Tw.*t$' | +-------------------------+ | 1 | +-------------------------+
In dit geval is de retourwaarde 1
wat betekent dat de invoerreeks overeenkomt met de reguliere expressie. In het bijzonder hebben we gespecificeerd dat de invoerreeks moet beginnen met Tw en eindigen met t (dit komt omdat we het patroon zijn begonnen met ^Tw
en eindigde met t$
). De .
part specificeert een willekeurig teken, en *
specificeert dat het nul kan zijn tot een willekeurig aantal van dat (elke) teken. Dus .*
betekent dat er geen tekens, één teken of veel tekens tussen het begin en het einde mogen staan.
Dit is wat er gebeurt als we de *
. weglaten :
SELECT 'Tweet' RLIKE '^Tw.t$';
Resultaat:
+------------------------+ | 'Tweet' RLIKE '^Tw.t$' | +------------------------+ | 0 | +------------------------+
Het resultaat is 0
wat betekent dat er geen match is. Dit komt omdat .
specificeert slechts één instantie van een willekeurig teken. Onze invoerreeks bevat twee instanties.
Hier zijn enkele permutaties:
SELECT
'Twet' RLIKE '^Tw.t$' AS "Twet",
'Twit' RLIKE '^Tw.t$' AS "Twit",
'Twt' RLIKE '^Tw.t$' AS "Twt",
'Tw.t' RLIKE '^Tw.t$' AS "Tw.t";
Resultaat:
+------+------+-----+------+ | Twet | Twit | Twt | Tw.t | +------+------+-----+------+ | 1 | 1 | 0 | 1 | +------+------+-----+------+