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ặcLIKE '%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.