gpt4 book ai didi

mysql - 根据另一个表的时间戳删除表数据库中的行

转载 作者:搜寻专家 更新时间:2023-10-30 20:52:20 26 4
gpt4 key购买 nike

我目前正在尝试学习如何使用 MySQL 数据库的过程。我在测试数据库上有两张表,一张叫做用户,一张叫做消息。

如果删除列等于 1,我尝试删除我的消息表中的行,使用:

DELETE FROM `messages` WHERE `delete` = 1;

效果很好。

然后,在我的表 users 中,有一列的时间戳称为 last_seen(例如,2016-05-08 13:00:26),另一列称为 user_id,每个用户都有自己的唯一 ID(例如,123456789) .在我的表消息中,有一个名为 receiver_id 的列。我想创建一个程序,删除表消息中的每一行,其中 user_id(在用户表中)和 receiver_id(在消息表中)匹配的 ID 以及时间戳日期(来自表用户和 last_seen 列)超过 30 天。

我尝试了几种不同的方法,但似乎都不起作用。知道怎么做吗?

这几乎是我第一次尝试使用 MySQL,这可能不是很优化,它用于学校和学习目的。我正在尝试制作一个非常基本的系统,将用户及其消息存储在数据库中。

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

可以像这样查询(join 和 date_sub)

delete from  `messages` 
inner join `user` on `messages`.user_id = `user`.id
and `user`.last_seen < DATE_SUB(NOW(), INTERVAL 30 DAY) ;

关于mysql - 根据另一个表的时间戳删除表数据库中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37644562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com