我需要删除其他几个具有相同外键的行,但我需要删除最旧的一行。
我不知道最古老的约会。因此,我需要首先检查所有其他行。
DELETE FROM SOMEWHERE WHERE PROD_ID = 'me' AND DATE ???;");
数据类型是:
外键的INT。 TIMESTAMP表示日期(选择最早的日期)
我正在使用MYSQL。
答案 0 :(得分:2)
DELETE FROM SOMEWHERE WHERE PROD_ID = 'me' ORDER BY DATE DESC LIMIT 1
这将为您提供最早的日期并将其删除。您可以根据日期字段按降序对其进行排序,然后只删除第一个(最旧的)。
答案 1 :(得分:0)
答案 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工作,以防你正在进行批量处理,而不仅仅是文字“我”。