SQL删除几个相同外键中的特定行,但具有最早的日期

时间:2018-04-25 14:06:45

标签: mysql sql

我需要删除其他几个具有相同外键的行,但我需要删除最旧的一行。

我不知道最古老的约会。因此,我需要首先检查所有其他行。

 DELETE FROM SOMEWHERE WHERE PROD_ID = 'me' AND DATE ???;");

数据类型是:

外键的INT。 TIMESTAMP表示日期(选择最早的日期)

我正在使用MYSQL。

3 个答案:

答案 0 :(得分:2)

DELETE FROM SOMEWHERE WHERE PROD_ID = 'me' ORDER BY DATE DESC LIMIT 1

这将为您提供最早的日期并将其删除。您可以根据日期字段按降序对其进行排序,然后只删除第一个(最旧的)。

答案 1 :(得分:0)

试试这个:

1%2C2-Phenylacetyl CoA Epoxidase%2C subunit A

查看有效的DEMO on SQL Fiddle

答案 2 :(得分:0)

WHERE子句中的子查询应该有效。尝试类似:

DELETE FROM SOMEWHERE A WHERE A.PROD_ID = 'me' AND A.DATE = (
   SELECT MIN(B.DATE) FROM SOMEWHERE B WHERE A.PROD_ID = B.PROD_ID)

这样可以为多个PROD_ID工作,以防你正在进行批量处理,而不仅仅是文字“我”。