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

MySQL: Xóa tất cả hàng chứa chuỗi "foo" trong bảng "bar"

Sử dụng DELETE kết hợp LIKE với các pattern bao phủ mọi vị trí của chuỗi con.

Cú pháp

DELETE FROM ten_bang 
WHERE ten_cot LIKE '%chuoi%' 
   OR ten_cot LIKE 'chuoi%' 
   OR ten_cot LIKE '%chuoi';

Hoặc gọn hơn (MySQL LIKE mặc định không phân biệt chữ hoa/thường):

DELETE FROM ten_bang WHERE ten_cot LIKE '%foo%';

Ví dụ minh họa

Tạo bảng bar:

mysql> CREATE TABLE bar (
    -> Id INT NOT NULL AUTO_INCREMENT,
    -> TuKhoa LONGTEXT,
    -> PRIMARY KEY(Id)
    -> );

Chèn dữ liệu (có chứa "foo"):

mysql> INSERT INTO bar(TuKhoa) VALUES('Javafoo');
mysql> INSERT INTO bar(TuKhoa) VALUES('fooMySQL');
mysql> INSERT INTO bar(TuKhoa) VALUES('Introduction to foo C and C++');
mysql> INSERT INTO bar(TuKhoa) VALUES('Introduction to Node.js');
mysql> INSERT INTO bar(TuKhoa) VALUES('Introduction to Hibernate framework');

Dữ liệu gốc:

+----+-------------------------------------+
| Id | TuKhoa                              |
+----+-------------------------------------+
| 1  | Javafoo                             |
| 2  | fooMySQL                            |
| 3  | Introduction to foo C and C++       |
| 4  | Introduction to Node.js             |
| 5  | Introduction to Hibernate framework |
+----+-------------------------------------+

Xóa hàng chứa "foo"

mysql> DELETE FROM bar WHERE TuKhoa LIKE '%foo%';

Kết quả: Query OK, 3 rows affected

Kiểm tra lại:

+----+-------------------------------------+
| Id | TuKhoa                              |
+----+-------------------------------------+
| 4  | Introduction to Node.js             |
| 5  | Introduction to Hibernate framework |
+----+-------------------------------------+

Lưu ý: LIKE '%foo%' đã bao phủ cả 3 trường hợp: đầu, giữa, cuối. Chỉ cần một điều kiện.