运行文件表:
Sample_Id Created_On
filename.csv 09/25/2017 16:17:33
filename.csv 09/25/2017 16:10:33
我需要删除具有最新时间戳的行。
此查询给出旧记录。
SELECT min(RunFile.`Created_On`) FROM RunFile WHERE Sample_Id='filename.csv'
我正在尝试类似下面的操作,但它没有按预期工作:
DELETE From RunFile WHERE RunFile.`Created_On` IN (SELECT min(RunFile.`Created_On`) FROM RunFile WHERE Sample_Id='filename.csv')
谁能帮我解决如何根据时间戳删除旧记录。
最佳答案
您可以在 DELETE 查询中进行排序和限制:
DELETE FROM RunFile WHERE Sample_Id = 'filename.csv' ORDER BY Created_On DESC LIMIT 1
我强烈建议将 Created_On 列更改为格式为“Y-m-d H:i:s”或时间戳的日期时间。在当前的字符串格式中,order by 不会像您预期的那样工作。 10/25/2016 大于 09/25/2017。
关于mysql - 有没有办法通过使用时间戳进行比较来删除最近的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46411472/