Computer >> Máy Tính >  >> Lập trình >> MySQL

Tìm kiếm MySQL nếu có nhiều hơn một chuỗi chứa các ký tự đặc biệt?

Để tìm kiếm xem các chuỗi có chứa các ký tự đặc biệt hay không, bạn có thể sử dụng REGEXP. Sau đây là cú pháp -

select * from yourTableName
where yourColumnName REGEXP '[^a-zA-Z0-9]';

Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table specialCharactersDemo
   -> (
   -> StudentId varchar(100)
   -> );
Query OK, 0 rows affected (0.58 sec)

Chèn bản ghi trong bảng bằng lệnh chèn. Sau đây là truy vấn -

mysql> insert into specialCharactersDemo values('STU_1234');
Query OK, 1 row affected (0.15 sec)
mysql> insert into specialCharactersDemo values('STU567');
Query OK, 1 row affected (0.14 sec)
mysql> insert into specialCharactersDemo values('STU#1234');
Query OK, 1 row affected (0.13 sec)
mysql> insert into specialCharactersDemo values('STU897$');
Query OK, 1 row affected (0.18 sec)
mysql> insert into specialCharactersDemo values('STU999');
Query OK, 1 row affected (0.43 sec)
mysql> insert into specialCharactersDemo values('STU1010');
Query OK, 1 row affected (0.14 sec

Sau đây là truy vấn để hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select -

mysql> select *from specialCharactersDemo;

Điều này sẽ tạo ra kết quả sau -

+-----------+
| StudentId |
+-----------+
| STU_1234  |
| STU567    |
| STU#1234  |
| STU897$   |
| STU999    |
| STU1010   |
+-----------+
6 rows in set (0.00 sec)

Đây là truy vấn để tìm kiếm xem một chuỗi có chứa các ký tự đặc biệt hay không -

mysql> select *from specialCharactersDemo
   -> where StudentId REGEXP '[^a-zA-Z0-9]';

Điều này sẽ tạo ra kết quả sau -

+-----------+
| StudentId |
+-----------+
| STU_1234  |
| STU#1234  |
| STU897$   |
+-----------+
3 rows in set (0.02 sec)

Bạn có thể sử dụng một cú pháp khác cho kết quả trên. Sau đây là truy vấn -

mysql> select *from specialCharactersDemo
   -> where StudentId REGEXP'[^[:alnum:]]';

Điều này sẽ tạo ra kết quả sau -

+-----------+
| StudentId |
+-----------+
| STU_1234  |
| STU#1234  |
| STU897$   |
+-----------+
3 rows in set (0.05 sec)