sql >> Databasteknik >  >> RDS >> MariaDB

Hur RLIKE fungerar i MariaDB

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 |
+------+------+-----+------+

  1. Vad betyder ett (+)-tecken i en Oracle SQL WHERE-sats?

  2. SUM() Funktion i MariaDB

  3. Använd MySQL relationsdatabaser på Ubuntu 8.04 (Hardy)

  4. ABS() Funktion i Oracle