Php 如果在表1中创建的时间超过31天,则要删除的查询
我有两个表,一个是Php 如果在表1中创建的时间超过31天,则要删除的查询,php,mysql,sql,Php,Mysql,Sql,我有两个表,一个是posts,另一个是recent\u view这两个表都有日期作为当前时间戳 (职位)已创建 及 (最近查看)有日期 我希望通过比较(posts)表中的记录来删除(最近查看的)中的所有记录,如果创建日期早于31天,则从最近查看的表中删除这些记录 模式 -- -- Table structure for table `recent_viewed` -- CREATE TABLE IF NOT EXISTS `recent_viewed` ( `id` int(11)
posts
,另一个是recent\u view
这两个表都有日期作为当前时间戳
(职位)已创建
及
(最近查看)有日期
我希望通过比较(posts)表中的记录来删除(最近查看的)中的所有记录,如果创建日期早于31天,则从最近查看的表中删除这些记录
模式
--
-- Table structure for table `recent_viewed`
--
CREATE TABLE IF NOT EXISTS `recent_viewed` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`postID` int(11) NOT NULL,
`memberID` int(11) NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Dumping data for table `recent_viewed`
--
--
-- Table structure for table `posts`
--
CREATE TABLE IF NOT EXISTS `posts` (
`postID` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(70) NOT NULL,
`name` varchar(32) NOT NULL,
`city` varchar(32) NOT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`postID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Dumping data for table `posts`
--
PS:我不擅长,这就是为什么我请求这个帮助的原因。我非常感谢你
谢谢这不是一个有效的解决方案,但是一个简单的解决方案肯定会帮助您:
delete from recent_viewed where postID in (
select postID from posts where abs(datediff(CURRENT_TIMESTAMP,posts.created)) > 31);
请提供模式设计,以获得更好的答案。您好,我在第一篇文章中发表了editingtry做一个连接,我建议发布一些示例数据和预期结果,这就是我寻求帮助的原因感谢alot mate的帮助。非常感谢你的好意