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

2 начина за връщане на редове, които съдържат само небуквени и цифрови знаци в MariaDB

По-долу са дадени два метода за връщане на редове, които съдържат само небуквени и цифрови знаци в MariaDB.

Небуквени и цифрови знаци включват препинателни знаци като [email protected]#&()–[{}]:;',?/* и символи като `~$^+=<>“ , както и празни знаци като интервалите или табулацията.

Примерни данни

Ще използваме следните данни за нашите примери:

CREATE TABLE t1 (
    c1 varchar(255) NULL
    );

INSERT INTO t1 VALUES
    ('Music'),
    ('Live Music'),
    ('Café'),
    ('Café Del Mar'),
    ('100 Cafés'),
    ('[email protected]'),
    ('1 + 1'),
    ('()'),
    ('[email protected]#&()–[{}]:;'',?/*'),
    ('`~$^+=<>“'),
    ('$1.50'),
    ('Player 456'),
    ('007'),
    (null),
    (''),
    ('é'),
    ('É'),
    ('é 123'),
    ('ø'),
    ('ø 123');
SELECT c1 FROM t1;

Резултат:

+----------------------+
| c1                   |
+----------------------+
| Music                |
| Live Music           |
| Café                 |
| Café Del Mar         |
| 100 Cafés            |
| [email protected]    |
| 1 + 1                |
| ()                   |
| [email protected]#&()–[{}]:;',?/*   |
| `~$^+=<>“            |
| $1.50                |
| Player 456           |
| 007                  |
| NULL                 |
|                      |
| é                    |
| É                    |
| é 123                |
| ø                    |
| ø 123                |
+----------------------+

Опция 1:Сравнете с [:alnum:]

Възможността за регулярни изрази на MariaDB включва поддръжка за POSIX символните класове. Следователно можем да използваме [:alnum:] POSIX клас символи в нашите регулярни изрази, за да намерите редовете, които съдържат само буквено-цифрови знаци, след което отричайте това с NOT оператор.

SELECT c1 FROM t1 
WHERE c1 NOT REGEXP '[[:alnum:]]';

Резултат:

+----------------------+
| c1                   |
+----------------------+
| ()                   |
| [email protected]#&()–[{}]:;',?/*   |
| `~$^+=<>“            |
|                      |
+----------------------+

Ако трябва да изключите конкретен знак, винаги можете да използвате NULLIF() функция.

Например, нека изключим празния низ от последния ред:

SELECT c1 FROM t1 
WHERE NULLIF(c1, '') NOT REGEXP '[[:alnum:]]';

Резултат:

+----------------------+
| c1                   |
+----------------------+
| ()                   |
| [email protected]#&()–[{}]:;',?/*   |
| `~$^+=<>“            |
+----------------------+

Опция 2:Посочете диапазон от знаци

Друг начин да го направите е да посочите диапазон от знаци във вашия регулярен израз.

Пример:

SELECT c1 FROM t1 
WHERE c1 NOT REGEXP '[A-Za-z0-9]';

Резултат:

+----------------------+
| c1                   |
+----------------------+
| ()                   |
| [email protected]#&()–[{}]:;',?/*   |
| `~$^+=<>“            |
|                      |
| é                    |
| É                    |
| ø                    |
+----------------------+

И за да премахнете празния низ:

SELECT c1 FROM t1
WHERE NULLIF(c1, '') NOT REGEXP '[A-Za-z0-9]';

Резултат:

+----------------------+
| c1                   |
+----------------------+
| ()                   |
| [email protected]#&()–[{}]:;',?/*   |
| `~$^+=<>“            |
| é                    |
| É                    |
| ø                    |
+----------------------+

В този случай моят диапазон на изключване не обхваща буквено-цифрови знаци като é , É и ø , и така изходът не е истинско представяне на небуквени и цифрови знаци. Въпреки това поне този метод ви дава възможност да посочите точните знаци, които искате да включите или изключите от резултата.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как EXTRACT() работи в MariaDB

  2. Инсталирайте WordPress с Nginx, MariaDB 10 и PHP 7 на Debian 9

  3. Оптимизация на MySQL Storage Engine:Конфигуриране на InnoDB оптимизация за висока производителност

  4. Подготовка на MySQL или MariaDB сървър за производство - част втора

  5. Използване на Aria Storage Engine с MariaDB сървър