如何在MySQL中刪除超過14天的行?


要刪除,使用 MySQL DELETE。但是,要獲取超過 14 天的記錄,請將當前日期減去 14 天的日期間隔。以下顯示了相同的語法:-

delete from yourTableName
where yourColumnName< (curdate() - interval 14 day);

讓我們首先建立一個表:-

mysql> create table DemoTable
(
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   DueDate date
);
Query OK, 0 rows affected (0.50 sec)

使用 insert 命令在表中插入一些記錄:-

mysql> insert into DemoTable(DueDate) values('2019-08-20');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(DueDate) values('2019-08-19');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable(DueDate) values('2018-08-19');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(DueDate) values('2018-08-18');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(DueDate) values('2019-08-15');
Query OK, 1 row affected (0.23 sec)

使用 select 語句從表中顯示所有記錄:-

mysql> select *from DemoTable ;

這將產生以下輸出:-

+----+------------+
| Id | DueDate    |
+----+------------+
|  1 | 2019-08-20 |
|  2 | 2019-08-19 |
|  3 | 2018-08-19 |
|  4 | 2018-08-18 |
|  5 | 2019-08-15 |
+----+------------+
5 rows in set (0.00 sec)

以下是刪除超過 14 天的行是的查詢:-

mysql> delete from DemoTable
   where DueDate − (curdate() - interval 14 day);
Query OK, 4 rows affected (0.62 sec)

讓我們再次檢查表記錄:-

mysql> select *from DemoTable;

這將產生以下結果。現在,所有 14 天前的行都將被刪除:-

+----+------------+
| Id | DueDate    | 
+----+------------+
|  1 | 2019-08-20 |
+----+------------+
1 row in set (0.00 sec)

更新於: 2019 年 10 月 4 日

1 千+瀏覽

啟動你的 職業

完成課程獲得認證

開始
廣告
© . All rights reserved.