Ето пример за връщане на редове, които съдържат само небуквени и цифрови знаци в SQLite.
Небуквени и цифрови знаци включват препинателни знаци като example@sqldat.com#&()–[{}]:;',?/* и символи като `~$^+=<>“ , както и празни знаци като интервалите или табулацията.
Примерни данни
Ще използваме следните данни за нашите примери:
SELECT c1 FROM t1; Резултат:
+----------------------+
| c1 |
+----------------------+
| Music |
| Live Music |
| Café |
| Café Del Mar |
| 100 Cafés |
| example@sqldat.com |
| 1 + 1 |
| () |
| example@sqldat.com#&()–[{}]:;',?/* |
| `~$^+=<>“ |
| $1.50 |
| Player 456 |
| 007 |
| NULL |
| |
| é |
| É |
| é 123 |
| ø |
| ø 123 |
+----------------------+
Можем да използваме REGEXP оператор с регулярен израз за връщане на редовете, които съдържат само небуквени и цифрови знаци:
SELECT c1 FROM t1
WHERE c1 NOT REGEXP '[A-Za-z0-9]'; Резултат:
+----------------------+
| c1 |
+----------------------+
| () |
| example@sqldat.com#&()–[{}]:;',?/* |
| `~$^+=<>“ |
| |
| é |
| É |
| ø |
+----------------------+
В този случай моят диапазон на изключване не обхваща буквено-цифрови знаци като é , É и ø . Следният пример разширява диапазона, за да изключи тези знаци от резултата:
SELECT c1 FROM t1
WHERE c1 NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]'; Резултат:
()
example@sqldat.com#&()–[{}]:;',?/*
`~$^+=<>“
Нашата таблица също съдържа ред с празния низ. Това не е буквено-цифров знак и затова се връща в горния резултат. Можем също да използваме NULLIF() функция за изключване на празния низ от изхода:
SELECT c1 FROM t1
WHERE NULLIF(c1, '') NOT REGEXP '[A-Za-zÀ-Þß-ÿ0-9]'; Резултат:
()
example@sqldat.com#&()–[{}]:;',?/*
`~$^+=<>“