Để xóa tất cả các hàng cũ hơn 5 ngày, bạn có thể sử dụng cú pháp sau -
xóa khỏi yourTableName trong đó dateiff (now (), yourTableName.yourDateColumnName)> 5;
Lưu ý - Giả sử ngày hiện tại là ngày 3 tháng 3 năm 2019.
Để hiểu khái niệm, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau -
mysql> create table deleteRowsOlderThan5Demo -> (-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar (100), -> Post_Date date ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,69 giây)
Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau -
mysql> insert vào deleteRowsOlderThan5Demo (Name, Post_Date) giá trị ('Larry', '2019-03-11'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,12 giây) mysql> chèn vào giá trị deleteRowsOlderThan5Demo (Name, Post_Date) ( 'Mike', '2019-02-12'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,17 giây) mysql> chèn vào giá trị deleteRowsOlderThan5Demo (Tên, Post_Date) ('Sam', '2019-03-10'); Truy vấn OK , 1 hàng bị ảnh hưởng (0,12 giây) mysql> chèn vào giá trị deleteRowsOlderThan5Demo (Tên, Post_Date) ('Carol', '2019-03-01'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,23 giây) mysql> chèn vào deleteRowsOlderThan5Demo (Tên , Post_Date) giá trị ('David', '2019-01-31'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,19 giây) mysql> chèn vào giá trị deleteRowsOlderThan5Demo (Tên, Post_Date) ('Maxwell', '2019-01-26 '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,10 giây) mysql> chèn vào giá trị deleteRowsOlderThan5Demo (Tên, Ngày đăng) (' John ',' 2019-02-19 '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,12 giây)Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -
mysql> select * from deleteRowsOlderThan5Demo;Đây là kết quả -
+ ---- + --------- + ------------ + | Id | Tên | Post_Date | + ---- + --------- + ------------ + | 1 | Larry | 2019-03-11 || 2 | Mike | 2019-02-12 || 3 | Sam | 2019-03-10 || 4 | Carol | 2019-03-01 || 5 | David | 2019-01-31 || 6 | Maxwell | 2019-01-26 || 7 | John | 2019-02-19 | + ---- + --------- + ------------ + 7 hàng trong bộ (0,00 giây)Đây là truy vấn để xóa tất cả các hàng cũ hơn 5 ngày -
mysql> xóa khỏi deleteRowsOlderThan5Demo -> trong đó dateiff (now (), deleteRowsOlderThan5Demo.Post_Date)> 5; Truy vấn OK, 5 hàng bị ảnh hưởng (0,14 giây)Hãy để chúng tôi kiểm tra các bản ghi bảng một lần nữa. Truy vấn như sau -
mysql> select * from deleteRowsOlderThan5Demo;Đây là kết quả -
+ ---- + ------- + ------------ + | Id | Tên | Post_Date | + ---- + ------- + ------------ + | 1 | Larry | 2019-03-11 || 3 | Sam | 2019-03-10 | + ---- + ------- + ------------ + 2 hàng trong bộ (0,00 giây)