Ето пример за връщане на редове, които съдържат буквено-цифрови знаци в SQLite.
Буквено-цифровите знаци са букви и цифри.
Пример
Да предположим, че имаме таблица със следните данни:
SELECT c1 FROM t1;
Резултат:
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 REGEXP '^[A-Za-z0-9]+$';
Резултат:
Music 007
В този случай не включих уникод знаци като é
, É
, или ø
в моя диапазон и така всички редове, които съдържат тези знаци, са изключени от изхода.
Ще трябва да се уверите, че имате обхванати съответните знаци, когато правите това.
Ето пример за разширяване на диапазона, за да включи тези знаци:
SELECT c1 FROM t1
WHERE c1 REGEXP '^[A-Za-zÀ-Þß-ÿ0-9]+$';
Резултат:
Music Café 007 é É ø
Знакът за интервал не е буквено-цифров. Следователно, за да върнем редове, които включват интервали, можем да добавим интервал към нашия регулярен израз:
SELECT c1 FROM t1
WHERE c1 REGEXP '^[A-Za-zÀ-Þß-ÿ0-9 ]+$';
Резултат:
Music Live Music Café Café Del Mar 100 Cafés Player 456 007 é É é 123 ø ø 123
Можем да използваме следния код, за да включим всички редове, които съдържат знаци от нашия диапазон (дори и те да съдържат знаци извън този диапазон):
SELECT c1 FROM t1
WHERE c1 REGEXP '[A-Za-zÀ-Þß-ÿ0-9]';
Резултат:
Music Live Music Café Café Del Mar 100 Cafés [email protected] 1 + 1 $1.50 Player 456 007 é É é 123 ø ø 123