V MySQL, RLIKE
operátor se používá k určení, zda řetězec odpovídá regulárnímu výrazu. Je to synonymum pro REGEXP_LIKE()
.
Pokud řetězec odpovídá zadanému regulárnímu výrazu, výsledek je 1
, jinak je to 0
.
Syntaxe
Syntaxe vypadá takto:
expr RLIKE pat
Kde expr
je vstupní řetězec a pat
je regulární výraz, pro který řetězec testujete.
Příklad
Zde je příklad použití tohoto operátoru v SELECT
prohlášení:
SELECT 'Tweet' REGEXP '^Tw.*t$';
Výsledek:
+--------------------------+ | 'Tweet' REGEXP '^Tw.*t$' | +--------------------------+ | 1 | +--------------------------+
V tomto případě je návratová hodnota 1
což znamená, že vstupní řetězec odpovídal regulárnímu výrazu. Konkrétně jsme specifikovali, že vstupní řetězec by měl začínat Tw a končí na t (to proto, že jsme vzor začali s ^Tw
a skončilo to t$
). .
část určuje libovolný znak a *
určuje, že může být nula až libovolné číslo tohoto (jakéhokoli) znaku. Takže .*
znamená, že mezi začátkem a koncem nemohou být žádné znaky, jeden znak nebo mnoho znaků.
Zde je to, co se stane, když vypustíme *
:
SELECT 'Tweet' REGEXP '^Tw.t$';
Výsledek:
+-------------------------+ | 'Tweet' REGEXP '^Tw.t$' | +-------------------------+ | 0 | +-------------------------+
Výsledek je 0
což znamená žádná shoda. Důvodem je .
určuje pouze jednu instanci libovolného znaku. Náš vstupní řetězec obsahuje dvě instance.
Zde jsou některé permutace:
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';
Výsledek:
+------+------+-----+------+ | Twet | Twit | Twt | Tw.t | +------+------+-----+------+ | 1 | 1 | 0 | 1 | +------+------+-----+------+
Další příklady
Další příklady viz Příklady MySQL REGEXP. Jako RLIKE
, REGEXP
Operátor je také synonymem pro REGEXP_LIKE()
.