MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

2 Cara Mengembalikan Baris yang Hanya Mengandung Karakter Non-Alfanumerik di MariaDB

Di bawah ini adalah dua metode untuk mengembalikan baris yang hanya berisi karakter non-alfanumerik di MariaDB.

Karakter non-alfanumerik mencakup karakter tanda baca seperti [email protected]#&()–[{}]:;',?/* dan simbol seperti `~$^+=<>“ , serta karakter spasi putih seperti karakter spasi atau tab.

Contoh Data

Kami akan menggunakan data berikut untuk contoh kami:

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;

Hasil:

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

Opsi 1:Bandingkan dengan [:alnum:]

Kemampuan ekspresi reguler MariaDB mencakup dukungan untuk kelas karakter POSIX. Oleh karena itu, kita dapat menggunakan [:alnum:] Kelas karakter POSIX dalam ekspresi reguler kami untuk menemukan baris yang hanya berisi karakter alfanumerik, lalu meniadakannya dengan NOT operator.

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

Hasil:

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

Jika Anda perlu mengecualikan karakter tertentu, Anda selalu dapat menggunakan NULLIF() fungsi.

Misalnya, mari kita kecualikan string kosong dari baris terakhir:

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

Hasil:

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

Opsi 2:Tentukan Rentang Karakter

Cara lain untuk melakukannya adalah dengan menentukan rentang karakter dalam ekspresi reguler Anda.

Contoh:

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

Hasil:

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

Dan untuk menghapus string kosong:

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

Hasil:

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

Dalam hal ini, rentang pengecualian saya tidak mencakup karakter alfanumerik seperti é , É , dan ø , sehingga outputnya bukan representasi sebenarnya dari karakter non-alfanumerik. Meskipun demikian, setidaknya metode ini memberi Anda opsi untuk menentukan karakter persis yang ingin Anda sertakan atau kecualikan dari hasil.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana OCTET_LENGTH() Bekerja di MariaDB

  2. Panduan untuk Indeks MySQL

  3. Apa yang Baru di MariaDB 10.6

  4. MariaDB JSON_VALUE() Dijelaskan

  5. Pilihan Mesin Penyimpanan:Aria