mysql - 如果该行具有特定值,则从 MYSQL 中删除该行

标签 mysql

如果行中的两列在其列中具有最大值,我将尝试删除行。或者它同时具有 MIN 列和 MAX 列。

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

我该如何解决这个问题?

最佳答案

你需要分别写两个条件,试试这个:

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);

关于mysql - 如果该行具有特定值,则从 MYSQL 中删除该行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43560560/

相关文章:

php - MySQL:在查询中使用特殊的正则表达式规则修复时间格式

mysql - str_to_date(date_format(sysdate() ,'%d-%b-%Y') ,'%d-%b-%Y')-max(ren_date)>=7 附近的语法错误

mysql - 数据库 - 具有字符串长度的条目 - 结构?

Mysql 撤销root用户的权限

PHP mySQL - 你能返回一个带有数字索引的关联数组吗?

php - 尝试在 vTiger 中的 Leads 和 Quotes 之间添加相关列表

如果 ID 匹配,MySQL 查询将行显示为列

mysql - mysql中的递归选择

PHP - 似乎无法重定向我的 php 文件以链接到另一个文件夹中的另一个文件

mysql - 无法在 mysql Select 中使用变量