如何按升序选择最后20个命令 ?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (44)

这是我的表结构

MyTable
ID[P.K][auto increment]   TopicID   UID   Comment

现在我想得到TopicID的最后20条注释,按升序排序!

我可以使用2/3查询和php排序数组来完成这一任务但是我需要一些更好的替代方案。

Sample Result with data

MyTable  
ID TopicID UID Comment  
1  1       10  AAAA   
2  1       11  BBBB  
3  1       10  CCCC  
4  1       10  dddd   
5  1       11  EEEE  
6  1       10  FFFF

我想得到TopicID的最后3个结果,结果应该是

4  1       10  dddd   
5  1       11  EEEE  
6  1       10  FFFF

而不是

6  1       10  FFFF  
5  1       11  EEEE  
4  1       10  dddd  
提问于
用户回答回答于

首先,选择最后20个条目。然后按升序排序。你可以很容易地在一个查询中(使用子查询)完成此操作:

select * from (
    select * from your_table order by id desc limit 20
) tmp order by tmp.id asc
用户回答回答于
SELECT  *
FROM    (
        SELECT  *
        FROM    mytable
        WHERE   topicid = $mytopicid
        ORDER BY
                id DESC
        LIMIT 20
        ) q
ORDER BY
        id

或者,

(
SELECT  *
FROM    mytable
WHERE   topicid = $mytopicid
ORDER BY
        id DESC
LIMIT 20
)
ORDER BY
        id

扫码关注云+社区

领取腾讯云代金券