In MySQL, il RLIKE
viene utilizzato per determinare se una stringa corrisponde o meno a un'espressione regolare. È sinonimo di REGEXP_LIKE()
.
Se la stringa corrisponde all'espressione regolare fornita, il risultato è 1
, altrimenti è 0
.
Sintassi
La sintassi è questa:
expr RLIKE pat
Dove expr
è la stringa di input e pat
è l'espressione regolare per la quale stai testando la stringa.
Esempio
Ecco un esempio di come utilizzare questo operatore in un SELECT
dichiarazione:
SELECT 'Tweet' REGEXP '^Tw.*t$';
Risultato:
+--------------------------+ | 'Tweet' REGEXP '^Tw.*t$' | +--------------------------+ | 1 | +--------------------------+
In questo caso, il valore restituito è 1
il che significa che la stringa di input corrispondeva all'espressione regolare. In particolare, abbiamo specificato che la stringa di input deve iniziare con Tw e termina con t (questo è perché abbiamo iniziato il pattern con ^Tw
e l'ho terminato con t$
). Il .
part specifica qualsiasi carattere e *
specifica che potrebbe essere zero per qualsiasi numero di quel (qualsiasi) carattere. Quindi .*
significa che non possono esserci caratteri, un carattere o molti caratteri tra l'inizio e la fine.
Ecco cosa succede se eliminiamo il *
:
SELECT 'Tweet' REGEXP '^Tw.t$';
Risultato:
+-------------------------+ | 'Tweet' REGEXP '^Tw.t$' | +-------------------------+ | 0 | +-------------------------+
Il risultato restituito è 0
il che significa nessuna corrispondenza. Questo perché .
specifica solo un'istanza di qualsiasi carattere. La nostra stringa di input contiene due istanze.
Ecco alcune permutazioni:
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';
Risultato:
+------+------+-----+------+ | Twet | Twit | Twt | Tw.t | +------+------+-----+------+ | 1 | 1 | 0 | 1 | +------+------+-----+------+
Altri esempi
Per altri esempi, vedere Esempi di MySQL REGEXP. Come RLIKE
, il REGEXP
operator è anche sinonimo di REGEXP_LIKE()
.