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

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

Ето пример за връщане на редове, които съдържат само небуквени и цифрови знаци в SQLite.

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

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

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

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

Можем да използваме REGEXP оператор с регулярен израз за връщане на редовете, които съдържат само небуквени и цифрови знаци:

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

Резултат:

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

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

SELECT c1 FROM t1
WHERE c1 NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]';

Резултат:

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

Нашата таблица също съдържа ред с празния низ. Това не е буквено-цифров знак и затова се връща в горния резултат. Можем също да използваме NULLIF() функция за изключване на празния низ от изхода:

SELECT c1 FROM t1
WHERE NULLIF(c1, '') NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]';

Резултат:

()                
[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. Кога трябва да затворя DatabaseHelper?

  2. Управление на данни с Python, SQLite и SQLAlchemy

  3. Свързване на таблици с помощта на база данни за стаи в Android Studio

  4. Uncaught TypeError не може да извика метода 'opendatabase' на приставката undefined-SQLite с cordova 3.5

  5. Android SQLiteDB не завършва добавянето на стойности