0

我试图弄清楚如何编写一个 MySQL 查询,如果他们在列中有一个“X”并且关注那个人所有条目的最新日期(MsgDateTime),它将删除一个人。因此,如果他们的最新日期是 13 年 9 月 3 日,并且他们有五个以前的条目,并且第三个在标志列中有一个 X,我想删除它。谢谢

到目前为止,这是我的查询:

IF @EventType <> 'A4H' 

DELETE FROM BFE.dbo.BFEDATA     
WHERE (Flag = 'X') and MsgDateTime  > NOW() ORDER BY MsgDateTime

END

我会输入表格结构,但我不确定如何输入。

4

2 回答 2

0

如果您使用的是 if 块,我可以假设您正在编写一个程序吗?如果是这样,那么你可以试试这个

在您的声明块中:

latest date;

然后在你的 if 块内:

select MsgDateTime into latest from BFE.dbo.BFEDATA 
where flag = 'x'
order by MsgDateTime desc
limit 1;

delete from BFE.dbo.BFEDATA where flag = 'x' and
MsgDateTime = latest;
于 2013-10-16T19:30:40.590 回答
0

表结构是什么样的?
你可能想做类似的事情
DELETE FROM BFE.dbo.BFEDATA
WHERE id IN
(SELECT id FROM BFE.dbo.BFEDATA WHERE person= 'THE PERSON' ORDER BY MsgDateTime DESC LIMIT 1)
AND Flag = 'X' ;

于 2013-10-16T19:24:57.540 回答