Mysql
 sql >> Database >  >> RDS >> Mysql

Come funziona l'operatore RLIKE in MySQL

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() .