我有一些数据存储在一个名为 MyTable 的 MySQL 表中,如下所示:
+----------+-----------+---------------------+
| my_id | amount | updated |
+----------+-----------+---------------------+
| 105415 | 81 | 2013-02-13 00:00:00 |
| 105414 | 33 | 2013-02-13 00:00:00 |
| 220801 | 240 | 2013-02-13 00:00:00 |
| 105411 | 118 | 2013-02-13 00:00:00 |
| 105411 | 118 | 2013-02-12 00:00:00 |
| 220801 | 240 | 2013-02-12 00:00:00 |
| 105414 | 33 | 2013-02-11 00:00:00 |
| 105415 | 81 | 2013-02-11 00:00:00 |
+----------+-----------+---------------------+
我想做的是删除昨天(2013-02-12)与今天(2013-02-13)具有相同 my_id 和数量的所有行。
我知道如何选择今天的所有数据:
SELECT * FROM 'MyTable' WHERE 'updated' = CURDATE()
我知道如何选择昨天的所有数据:
SELECT * FROM 'MyTable' WHERE 'updated' = CURDATE()-1
我知道 DELETE 命令 ( DELETE FROM 'MyTable' WHERE...
) 的语法。
如何删除昨天和今天 my_id 和 amount 匹配的行?
在给出的示例中,我想删除这些行:
| 105411 | 118 | 2013-02-12 00:00:00 |
| 220801 | 240 | 2013-02-12 00:00:00 |
我想保留这些行:
+----------+-----------+---------------------+
| my_id | amount | updated |
+----------+-----------+---------------------+
| 105415 | 81 | 2013-02-13 00:00:00 |
| 105414 | 33 | 2013-02-13 00:00:00 |
| 220801 | 240 | 2013-02-13 00:00:00 |
| 105411 | 118 | 2013-02-13 00:00:00 |
| 105414 | 33 | 2013-02-11 00:00:00 |
| 105415 | 81 | 2013-02-11 00:00:00 |
+----------+-----------+---------------------+