mysql - 删除时间戳早于 x 天的所有行

标签 mysql sql-delete

我想从我的数据库中的特定表中删除时间戳超过 180 天的所有行。

我试过这个:

DELETE FROM on_search WHERE search_date < DATE_SUB(NOW(), INTERVAL 180 DAY);

但这删除了所有行,而不仅仅是超过 6 个月的行。

我在 on_search 表中有一个名为 search_date 的列,其中包含该行的创建时间。

search_id   search_term    search_date 
660779      car games      1390052553 

最佳答案

DELETE FROM on_search 
WHERE search_date < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 180 DAY))

关于mysql - 删除时间戳早于 x 天的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21206361/

相关文章:

mysql - 多人/单人问答游戏的数据库设计

mysql - 您可以在 MySQL 中的两个别名列上使用数学计算吗?

sql - 这个查找(关联)表是否正确? (多对多关系)

如果条目是数字,PHP 仅删除行

mysql - 删除引用多个表在 MYSQL 上不起作用

mysql - 我应该如何为拥有不同设备的不同用户设计数据库?

mysql - 内部连接与联合所有

sql - SQL中的DELETE和DELETE FROM之间的区别?

php - 试图删除数据库中的条目,收到 sql 错误但无法解决

java - HQL - 删除并出现 JOIN 错误