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#&()–[{}]:;',?/*
`~$^+=<>“