sql >> Database >  >> RDS >> Mysql

Hoe de RLIKE-operator werkt in MySQL

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


  1. PL/pgSQL controleren of een rij bestaat

  2. Volgorde van uitvoering van de SQL-query

  3. Een POST-verzoek verzenden met formuliergegevens en parameters in PL/SQL

  4. Maak een CHECK-beperking in SQLite