sql >> Databáze >  >> RDS >> MariaDB

Jak RLIKE funguje v MariaDB

V MariaDB, RLIKE operátor se používá k určení, zda řetězec odpovídá regulárnímu výrazu. Je to synonymum pro REGEXP .

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' RLIKE '^Tw.*t$';

Výsledek:

+-------------------------+
| 'Tweet' RLIKE '^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 určili, ž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' RLIKE '^Tw.t$';

Výsledek:

+------------------------+
| 'Tweet' RLIKE '^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' 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";

Výsledek:

+------+------+-----+------+
| Twet | Twit | Twt | Tw.t |
+------+------+-----+------+
|    1 |    1 |   0 |    1 |
+------+------+-----+------+

  1. Jak efektivně používat MySQLDB SScursor?

  2. Tipy a triky pro implementaci řízení přístupu k databázi na základě rolí pro MariaDB

  3. SqlDataSourceEnumerator.Instance.GetDataSources() nenalezne místní instanci SQL serveru 2008

  4. Jak mohu změnit výchozí časový limit připojení Mysql při připojování přes python?