2017-04-22 154 views
0

我想删除行,如果两行的列在其列中有最大值。或者它同时具有MIN列和MAX列。如果该行具有特定的值,从MYSQL删除行

BEGIN 
DELETE FROM scores WHERE (second, third) 
IN ((MAX(second),MAX(third))); 
select * from scores; 
END 

我有三列第一,第二和第三。我试图从上面查询,我试图删除行,如果第二和第三有最大值的列。它给了我一个错误。

ERROR 1111 (HY000) at line 70: Invalid use of group function 

我该如何解决这个问题?

回答

0

您需要单独写两个条件,试试这个:

DELETE s.* FROM scores s 
WHERE second = (SELECT second FROM (SELECT MAX(second) AS second FROM scores) a) 
AND third = (SELECT third FROM (SELECT MAX(third) AS third FROM scores) b); 
+0

它下面给了我一个错误。第71行的错误1093(HY000):您无法在FROM子句中指定更新目标表'分数' –

+0

已更新答案,现在试试? –

相关问题