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

Как работи NOT RLIKE в MySQL

В MySQL NOT RLIKE е отрицание на RLIKE оператор.

С други думи, по всяко време RLIKE операторът ще върне 1 , NOT RLIKE ще върне 0 .

Синтаксис

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

expr NOT RLIKE pat

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

Това е еквивалентно да направите следното:

NOT (expr RLIKE pat)

Пример 1 – Основна употреба

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

SELECT 'Coffee' NOT RLIKE '^C.*e$' AS 'Result';

Резултат:

+--------+
| Result |
+--------+
|      0 |
+--------+

Тук шаблонът се съвпада, ако входният низ започва с C и завършва с e . Така е, но защото използваме NOT RLIKE , получаваме отрицателен резултат (0 ).

Горното твърдение е еквивалентно на това:

SELECT NOT ('Coffee' RLIKE '^C.*e$') AS 'Result';

Резултат:

+--------+
| Result |
+--------+
|      0 |
+--------+

Пример 2 – В сравнение с RLIKE

Тук сравняваме резултатите от RLIKE с NOT RLIKE :

SELECT 
  'Coffee' RLIKE '^C.*e$' AS 'RLIKE',
  'Coffee' NOT RLIKE '^C.*e$' AS 'NOT RLIKE';

Резултат:

+-------+-----------+
| RLIKE | NOT RLIKE |
+-------+-----------+
|     1 |         0 |
+-------+-----------+

Пример 3 – Положителен резултат

Предишните примери доведоха до 0 за NOT RLIKE , защото низът направи всъщност съвпадат с модела. Ето пример, в който получаваме 1 , което показва, че низът не съвпадение:

SELECT 
  'Funny' RLIKE '^C.*e$' AS 'RLIKE',
  'Funny' NOT RLIKE '^C.*e$' AS 'NOT RLIKE';

Резултат:

+-------+-----------+
| RLIKE | NOT RLIKE |
+-------+-----------+
|     0 |         1 |
+-------+-----------+

Алтернативи

MySQL включва много функции и оператори, които по същество правят едно и също нещо и това важи и за NOT RLIKE .

Първо, RLIKE е синоним на REGEXP_LIKE() функция (както и REGEXP ).

Второ, NOT RLIKE е еквивалент на NOT REGEXP .

Трето, RLIKE , REGEXP и REGEXP_LIKE() може да се отрече чрез просто използване на NOT логически оператор.

Следователно всички изброени по-долу са еквивалентни:

expr NOT RLIKE pat
expr NOT REGEXP pat
NOT (expr RLIKE pat)
NOT (expr REGEXP pat)
NOT REGEXP_LIKE(expr, pat)

И ето пример за демонстрация:

SELECT 
  'Car' NOT RLIKE '^C' AS 'Result 1',
  'Car' NOT REGEXP '^C' AS 'Result 2',
  NOT ('Car' RLIKE '^C') AS 'Result 3',
  NOT ('Car' REGEXP '^C') AS 'Result 4',
  NOT REGEXP_LIKE('Car', '^C') AS 'Result 5';

Резултат:

+----------+----------+----------+----------+----------+
| Result 1 | Result 2 | Result 3 | Result 4 | Result 5 |
+----------+----------+----------+----------+----------+
|        0 |        0 |        0 |        0 |        0 |
+----------+----------+----------+----------+----------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съвети за надграждане на Percona XtraDB Cluster до 8.0

  2. Сортиране по ред на стойностите в оператор select в клауза в mysql

  3. mysqli_fetch_array() очаква параметър 1 да бъде mysqli_result, булев, даден в

  4. Как да добавите колона за автоматично увеличение в съществуваща таблица в MySQL

  5. Избиране на произволни редове в MySQL