Mysql 仅当行数超过n行时,才删除值较低的行

Mysql 仅当行数超过n行时,才删除值较低的行,mysql,sql,Mysql,Sql,如果表中的行数超过5行,我只想删除值较低的行 在本例中,我想删除id=4的行(值较低,并且有5行以上): 我想知道一个查询是否可行。您可以使用同一个表的左连接 delete t from your_table t left join ( select id from your_table order by value desc limit 5 ) tmp on t.id = tmp.id where tmp.id is null 这是一个微妙的不同问题的答案,我不明白这个问

如果表中的行数超过5行,我只想删除值较低的行

在本例中,我想删除id=4的行(值较低,并且有5行以上):


我想知道一个查询是否可行。

您可以使用同一个表的
左连接

delete t 
from your_table t
left join 
(
  select id
  from your_table
  order by value desc
  limit 5
) tmp on t.id = tmp.id
where tmp.id is null

这是一个微妙的不同问题的答案,我不明白这个问题。是否尝试有条件地删除id为4的行?还是要删除表中除最高的五行以外的所有行?
delete t 
from your_table t
left join 
(
  select id
  from your_table
  order by value desc
  limit 5
) tmp on t.id = tmp.id
where tmp.id is null