我有一张这样的表:
// cookies
+---------+-------------------------+------------------+------------+
| id | email | cookie | date_time |
+---------+-------------------------+------------------+------------+
| int(11) | varchar(50) | varchar(128) | int(11) |
+---------+-------------------------+------------------+------------+
| 1 | jack_2009@gmail.com | ojer0f934mf2... | 1467204523 |
| 2 | peter.zm@yahoo.com | ko4398f43043... | 1467205521 |
| 3 | matrix_john23@gmail.com | 34fjkg3j438t... | 1467205601 |
| 4 | peter.zm@yahoo.com | 0243hfd348i4... | 1467206039 |
+---------+-------------------------+------------------+------------+
我试图删除所有已过期的行。过期表示所有旧行。旧行表示超过一年的每一行。
DELETE FROM cookies WHERE date_time < unix_timestamp() - (60 * 60 * 24 * 365)
但我的查询对我来说似乎不正常。有没有更好的方法来做到这一点?
答案 0 :(得分:2)
您可以在1年后使用date_SUB interv
DELETE FROM cookies WHERE date_time < unix_timestamp(DATE_SUB(now(),INTERVAL 1 year))