我有一个包含两个外键的表。我需要删除key1的所有行,其中key2是key2,但val < $ x。MySQL:根据最大值删除记录
key1 & key2不是不同的值;可以有多个具有相同key1和/或key1/key2对的记录。
我尝试了几种方法,但无法获得任何工作。到目前为止,每种方法都会导致MySQL错误(例如“无法重新打开表格”)或错误的结果。从表中
的样本数据:
rownum key1 key2 val col col2 col3 col4
1 123 1 2 a b c d
2 123 1 2 e f g h
3 123 2 3 i j k l
4 123 2 3 m n o p
5 456 1 1 q r s t
我需要删除所有行“VAL”为<最高的“VAL”对于任何给定KEY1/KEY2对。
换句话说,对于每个不同的key1/key2组合,我需要找到最大值“val”($ x),并删除VAL为< $ x的行。
因此,delete语句后所需的输出是:
rownum key1 key2 val col col2 col3 col4
3 123 2 3 i j k l
4 123 2 3 m n o p
5 456 1 1 q r s t
(COL-COL4在决定删除哪些记录无关,我包括他们唯一要注意的是,表中包含其他列)
key1,key2和“val”都是int类型。
如何删除key1 & key2相同的行,但val < $ x?
向我们展示您尝试过的查询。 –
对于'key1 = 123'和'key2 = 2'的组合,val的最高值为3.因此,在两种情况下'key2'小于3,那么为什么组合不会被删除? –
对不起,该文章(现已编辑)出现错误。我的意思是说: “我需要删除'val'对于任何给定的key1/key2对'最高'val'的所有行。” – fournines