我一直在谷歌搜索,似乎找不到如何解决这个问题。我目前正在使用mysql并尝试运行这个从“播放的歌曲”中选择歌曲id,其中id=max(id)当我运行这个时,我得到了错误消息
有人知道我做错了什么吗?作为参考,我试图在一个已有的数据库中获取最新一行的song\u id。id递增,因此最新的值是列中的最大id。当我得到那个列时,我想在同一行中得到它的song\u id。对不起,如果这是一个超级基本的问题,我从来没有这样做过。谢谢!
zynd9foi1#
你需要用“having”而不是“where”。having在您对上一个计算进行操作时使用(获取max id是mysql必须进行的计算)。我会这样写。
SELECT song_id, MAX(id) as max_id FROM ‘played_songs’ HAVING max_id=id
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;
2条答案
按热度按时间zynd9foi1#
你需要用“having”而不是“where”。having在您对上一个计算进行操作时使用(获取max id是mysql必须进行的计算)。我会这样写。
qqrboqgw2#
不能在where子句中使用max,请尝试以下操作:
但更好的解决方案是: