我试图从表格的最后 3 行中选择一个不同的列,然后按升序排列。
感谢任何帮助。
下面的代码给出了以下错误: “‘订单子(monad)句’中存在未知列‘entry_id’”
SELECT * FROM (
SELECT distinct(column) as sem FROM table ORDER BY entry_id DESC LIMIT 3
) sub
ORDER BY entry_id ASC
最佳答案
您需要子查询返回排序列,否则在外部查询中不可用。
由于在子查询中使用了 distinct
,这变得很棘手。正如 Barmar 所评论的,将 entry_id
添加到 select unique
子句可能会破坏 distinct
,因此我们可以改为启用聚合:
SELECT column FROM (
SELECT column, max(entry_id) max_entry_id as sem
FROM table
ORDER BY max_entry_id DESC LIMIT 3
) sub
ORDER BY max_entry_id
注意:distinct
不是一个函数,因此它确实隐含了括号。
关于mysql 选择最后 3 个不同的行,但按 asc 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59957124/