I MariaDB, RLIKE
operatorn används för att avgöra om en sträng matchar ett reguljärt uttryck eller inte. Det är en synonym för REGEXP
.
Om strängen matchar det angivna reguljära uttrycket blir resultatet 1
, annars är det 0
.
Syntax
Syntaxen ser ut så här:
expr RLIKE pat
Där expr
är inmatningssträngen och pat
är det reguljära uttrycket som du testar strängen mot.
Exempel
Här är ett exempel på hur du använder den här operatorn i en SELECT
uttalande:
SELECT 'Tweet' RLIKE '^Tw.*t$';
Resultat:
+-------------------------+ | 'Tweet' RLIKE '^Tw.*t$' | +-------------------------+ | 1 | +-------------------------+
I det här fallet är returvärdet 1
vilket betyder att inmatningssträngen matchade det reguljära uttrycket. Vi specificerade särskilt att inmatningssträngen skulle börja med Tw och avsluta med t (detta beror på att vi startade mönstret med ^Tw
och avslutade det med t$
). .
del anger vilket tecken som helst och *
anger att det kan vara noll till valfritt tal av det (vilket som helst) tecken. Alltså .*
betyder att det inte kan finnas några tecken, ett tecken eller många tecken mellan början och slutet.
Här är vad som händer om vi släpper *
:
SELECT 'Tweet' RLIKE '^Tw.t$';
Resultat:
+------------------------+ | 'Tweet' RLIKE '^Tw.t$' | +------------------------+ | 0 | +------------------------+
Returresultatet är 0
vilket betyder ingen match. Detta beror på att .
anger endast en instans av ett tecken. Vår indatasträng innehåller två instanser.
Här är några permutationer:
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";
Resultat:
+------+------+-----+------+ | Twet | Twit | Twt | Tw.t | +------+------+-----+------+ | 1 | 1 | 0 | 1 | +------+------+-----+------+