Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

MySQL Regex: tìm kiếm bỏ qua ký tự đặc biệt (ví dụ dấu chấm trong tên)

Vấn đề

Tìm tên "Chris Brown" nhưng dữ liệu có thể lưu là "Chris.Brown" (có dấu chấm). Cần bỏ qua dấu chấm khi so sánh.

1. Tạo bảng

mysql> create table DemoTable (
    Name varchar(40)
);
Query OK, 0 rows affected (0.63 sec)

2. Chèn dữ liệu

mysql> insert into DemoTable values('John.Smith');
mysql> insert into DemoTable values('Chris Brown');
mysql> insert into DemoTable values('Chris.Brown');
mysql> insert into DemoTable values('David Miller');
mysql> insert into DemoTable values('Chris.Taylor');

3. Xem dữ liệu

mysql> select * from DemoTable;
+--------------+
| Name         |
+--------------+
| John.Smith   |
| Chris Brown  |
| Chris.Brown  |
| David Miller |
| Chris.Taylor |
+--------------+
5 rows in set (0.00 sec)

4. Truy vấn bỏ qua dấu chấm bằng REPLACE

mysql> select * from DemoTable where replace(Name, '.', '') = 'Chris Brown';

Kết quả:

+-------------+
| Name        |
+-------------+
| Chris Brown |
+-------------+
1 row in set (0.00 sec)

Giải thích: REPLACE(Name, '.', '') loại bỏ tất cả dấu chấm trước khi so sánh. Chỉ khớp chính xác "Chris Brown" (không có dấu chấm).