升序选择最后20个订单-PHP/MySQL [英] Select last 20 order by ascending - PHP/MySQL

查看:56
本文介绍了升序选择最后20个订单-PHP/MySQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的表结构

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

现在,我想获取一个TopicID的最后20条评论,但是应该以升序排列!

Now i want to get the last 20 comment for a TopicID but it should be sorted in ascending order !

[就像Facebook默认情况下一样,仅显示最后20条评论]

[Just like Facebook by default shows last 20 comment only]

我正在寻找一个优化的版本,我可以使用2/3查询和php sort数组来做到这一点,但是正在寻找更好的选择

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个结果,结果应为

I want to get the last 3 result for a TopicID, the result should be

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个条目.然后按升序对它们进行排序.您可以在单个查询(带有子查询)中轻松完成此操作:

First, select last 20 entries. Then sort them in ascending order. You can easily do this in a single query (with subquery):

select * from (
    select * from your_table order by id desc limit 20
) tmp order by tmp.id asc

这篇关于升序选择最后20个订单-PHP/MySQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆