Lọc chuỗi chỉ chứa một từ trong MySQL
Sử dụng toán tử NOT LIKE với mẫu '% %' (có khoảng trắng) để loại trừ các chuỗi có nhiều từ.
1. Tạo bảng và chèn dữ liệu
mysql> CREATE TABLE DemoTable (
Name VARCHAR(50)
);
mysql> INSERT INTO DemoTable VALUES
('John Smith'), ('John'), ('Adam Smith'), ('Carol'), ('David Miller');
2. Xem dữ liệu
mysql> SELECT * FROM DemoTable;
Kết quả:
+--------------+ | Name | +--------------+ | John Smith | | John | | Adam Smith | | Carol | | David Miller | +--------------+
3. Truy vấn: Chỉ lấy tên không chứa khoảng trắng
mysql> SELECT * FROM DemoTable
WHERE Name NOT LIKE '% %';
4. Kết quả
+-------+ | Name | +-------+ | John | | Carol | +-------+
Giải thích:
'% %': Mẫu khớp bất kỳ chuỗi nào chứa ít nhất một khoảng trắngNOT LIKE: Loại bỏ các chuỗi khớp mẫu trên- Kết quả chỉ còn 'John' và 'Carol' (một từ, không có space)
Mở rộng - Sử dụng REGEXP:
SELECT * FROM DemoTable WHERE Name NOT REGEXP ' ';
Hoặc chính xác hơn (chỉ chứa chữ cái/số, không space):
SELECT * FROM DemoTable WHERE Name REGEXP '^[^ ]+$';