使用聚合函数从 MySql 表中删除?
Posted
技术标签:
【中文标题】使用聚合函数从 MySql 表中删除?【英文标题】:Delete from MySql table using aggregate functions? 【发布时间】:2016-10-08 05:49:16 【问题描述】:我想知道是否可以使用 一些 聚合函数删除列(在此处找到:http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html)
例如说我想从我的数据库中删除最后一个user
,如果我可以运行就很容易:
delete from user where id = MAX(id);
但是运行它会给我以下错误:
ERROR 1111 (HY000):组函数使用无效
mysql 是否可行?
【问题讨论】:
【参考方案1】:你必须使用这样的查询:
delete from user where id = (select id
from (select MAX(id) as id
from user) as t)
【讨论】:
完美...应该用我的大脑来发现这一点,而不是问 SO :')【参考方案2】:尝试使用另一个选择,如下所示:
delete from user where id = (SELECT MAX(id) FROM user);
【讨论】:
【参考方案3】:你可以试试这样的:
delete from user where id = (select max(id) from user);
【讨论】:
请注意,这个答案已经发布了,谢谢。【参考方案4】:作为另一种选择,是使用临时变量:
set @id = (select max(id) from user);
delete from user where id = @id;
【讨论】:
这个好像报错了,ERROR 1093 (HY000): You can't specify target table 'user' for update in FROM clause
。以上是关于使用聚合函数从 MySql 表中删除?的主要内容,如果未能解决你的问题,请参考以下文章