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

Truy vấn MySQL lọc bản ghi chỉ chứa một từ (không có khoảng trắng)

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ắng
  • NOT 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 '^[^ ]+$';