In MySQL is 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_LIKE()
.
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 u de string test.
Voorbeeld
Hier is een voorbeeld van het gebruik van deze operator in een SELECT
verklaring:
SELECT 'Tweet' REGEXP '^Tw.*t$';
Resultaat:
+--------------------------+ | 'Tweet' REGEXP '^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 eindig 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' REGEXP '^Tw.t$';
Resultaat:
+-------------------------+ | 'Tweet' REGEXP '^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' REGEXP '^Tw.t$' AS 'Twet', 'Twit' REGEXP '^Tw.t$' AS 'Twit', 'Twt' REGEXP '^Tw.t$' AS 'Twt', 'Tw.t' REGEXP '^Tw.t$' AS 'Tw.t';
Resultaat:
+------+------+-----+------+ | Twet | Twit | Twt | Tw.t | +------+------+-----+------+ | 1 | 1 | 0 | 1 | +------+------+-----+------+
Meer voorbeelden
Zie MySQL REGEXP-voorbeelden voor meer voorbeelden. Like RLIKE
, de REGEXP
operator is ook een synoniem voor REGEXP_LIKE()
.