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

Xóa bản ghi chứa từ có dấu gạch dưới (MONTH_JAN) trong MySQL với LIKE

Xóa bản ghi khớp mẫu chứa ký tự đặc biệt bằng LIKE

Toán tử LIKE trong MySQL cho phép tìm kiếm mẫu chuỗi. Ký tự % đại diện cho bất kỳ chuỗi nào (kể cả rỗng). Dấu gạch dưới _ là ký tự đại diện cho 1 ký tự đơn - cần escape nếu tìm kiếm chữ '_' thực tế.

1. Tạo bảng và chèn dữ liệu

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(40),
    BornMonth VARCHAR(40)
);
mysql> INSERT INTO DemoTable (Name, BornMonth) VALUES
    ('Chris', 'MONTH_DEC'), ('Bob', 'MONTH_JAN'), ('Mike', 'MONTH_FEB'),
    ('David', 'MONTH_JAN'), ('Carol', 'MONTH_MARCH');

2. Xem dữ liệu

mysql> SELECT * FROM DemoTable;
+----+-------+-------------+
| Id | Name  | BornMonth   |
+----+-------+-------------+
| 1  | Chris | MONTH_DEC   |
| 2  | Bob   | MONTH_JAN   |
| 3  | Mike  | MONTH_FEB   |
| 4  | David | MONTH_JAN   |
| 5  | Carol | MONTH_MARCH |
+----+-------+-------------+

3. Truy vấn xóa: BornMonth chứa 'MONTH_JAN'

mysql> DELETE FROM DemoTable
    WHERE BornMonth LIKE '%MONTH_JAN%';

Kết quả: Query OK, 2 rows affected (xóa Bob và David)

4. Kiểm tra sau khi xóa

mysql> SELECT * FROM DemoTable;
+----+-------+-------------+
| Id | Name  | BornMonth   |
+----+-------+-------------+
| 1  | Chris | MONTH_DEC   |
| 3  | Mike  | MONTH_FEB   |
| 5  | Carol | MONTH_MARCH |
+----+-------+-------------+

Lưu ý quan trọng về dấu gạch dưới (_):

  • Trong LIKE, _ khớp với một ký tự bất kỳ
  • 'MONTH_JAN' thực tế khớp: 'MONTH_JAN', 'MONTHXJAN', 'MONTH1JAN'...
  • Để tìm chính xác dấu gạch dưới: LIKE '%MONTH\_JAN%' ESCAPE '\' hoặc LIKE '%MONTH[_]JAN%'

Trong ví dụ này dữ liệu không có trường hợp nhầm lẫn nên %MONTH_JAN% vẫn hoạt động đúng.