mysql初学者组函数使用无效的问题

euoag5mw  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(392)

我一直在谷歌搜索,似乎找不到如何解决这个问题。我目前正在使用mysql并尝试运行这个
从“播放的歌曲”中选择歌曲id,其中id=max(id)
当我运行这个时,我得到了错误消息

1111-组函数的无效使用

有人知道我做错了什么吗?作为参考,我试图在一个已有的数据库中获取最新一行的song\u id。id递增,因此最新的值是列中的最大id。当我得到那个列时,我想在同一行中得到它的song\u id。
对不起,如果这是一个超级基本的问题,我从来没有这样做过。
谢谢!

zynd9foi

zynd9foi1#

你需要用“having”而不是“where”。having在您对上一个计算进行操作时使用(获取max id是mysql必须进行的计算)。我会这样写。

SELECT song_id, MAX(id) as 
max_id FROM ‘played_songs’ 
HAVING max_id=id
qqrboqgw

qqrboqgw2#

不能在where子句中使用max,请尝试以下操作:

SELECT song_id FROM played_songs WHERE id=(SELECT max(id) FROM played_songs)

但更好的解决方案是:

SELECT song_id FROM played_songs ORDER BY id DESC LIMIT 1;

相关问题