Mysql
 sql >> база данни >  >> RDS >> Mysql

Как работи операторът RLIKE в MySQL

В MySQL, RLIKE Операторът се използва за определяне дали низ съответства на регулярен израз или не. Това е синоним на REGEXP_LIKE() .

Ако низът съвпада с предоставения регулярен израз, резултатът е 1 , в противен случай е 0 .

Синтаксис

Синтаксисът е така:

expr RLIKE pat

Където expr е входният низ и pat е регулярният израз, срещу който тествате низа.

Пример

Ето пример за това как да използвате този оператор в SELECT изявление:

SELECT 'Tweet' REGEXP '^Tw.*t$';

Резултат:

+--------------------------+
| 'Tweet' REGEXP '^Tw.*t$' |
+--------------------------+
|                        1 |
+--------------------------+

В този случай връщаната стойност е 1 което означава, че входният низ съответства на регулярния израз. По-специално, ние уточнихме, че входният низ трябва да започва с Tw и завършва с t (това е, защото започнахме шаблона с ^Tw и го завърши с t$ ). . част посочва произволен знак и * указва, че може да бъде нула до произволен брой от този (който и да е) знак. Така че .* означава, че между началото и края не може да има нито един знак, нито много знаци.

Ето какво се случва, ако пуснем * :

SELECT 'Tweet' REGEXP '^Tw.t$';

Резултат:

+-------------------------+
| 'Tweet' REGEXP '^Tw.t$' |
+-------------------------+
|                       0 |
+-------------------------+

Връщаният резултат е 0 което означава, че няма съвпадение. Това е така, защото . определя само един екземпляр на всеки знак. Нашият входен низ съдържа два екземпляра.

Ето някои пермутации:

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';

Резултат:

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

Още примери

За повече примери вижте MySQL REGEXP Примери. Като RLIKE , REGEXP операторът също е синоним на REGEXP_LIKE() .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да променя директорията с данни на MySQL?

  2. TIME() Примери – MySQL

  3. MySQL> Таблица не съществува. Но го прави (или трябва)

  4. Python и MySQL база данни:практическо въведение

  5. Извличане на ТОП 10 реда, без да използвате TOP или LIMIT? – Въпрос за интервю на седмицата #247