我有一個包含兩個外鍵的表。我需要刪除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