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

Kiểm tra hàng có đúng 2 từ (cách nhau bởi dấu cách) trong MySQL với REGEXP

Cú pháp REGEXP

SELECT * FROM yourTableName WHERE yourColumnName REGEXP '^[^ ]+[ ]+[^ ]+$';

Ý nghĩa: ^ bắt đầu, [^ ]+ một từ không có space, [ ]+ một hoặc nhiều space, [^ ]+ từ thứ hai, $ kết thúc.

Tạo bảng và dữ liệu

mysql> CREATE TABLE DemoTable1412 (Name VARCHAR(40));
INSERT INTO DemoTable1412 VALUES('John Adam Carol'),('Mike Sam'),('Chris James Robert');

Dữ liệu

mysql> SELECT * FROM DemoTable1412;
+--------------------+
| Name               |
+--------------------+
| John Adam Carol    |
| Mike Sam           |
| Chris James Robert |
+--------------------+

Truy vấn REGEXP

mysql> SELECT * FROM DemoTable1412 WHERE Name REGEXP '^[^ ]+[ ]+[^ ]+$';

Kết quả: Chỉ 'Mike Sam'

+----------+
| Name     |
+----------+
| Mike Sam |
+----------+

Lưu ý: MySQL dùng REGEXP (POSIX regex). Từ 8.0 có REGEXP_LIKE(). Mẫu trên chỉ khớp đúng 2 từ cách nhau bởi space. Nếu muốn cho phép tab, dùng [[:space:]].