首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP MYSQL顺序由DESC再到ASC

问PHP MYSQL顺序由DESC再到ASC
EN

Stack Overflow用户
提问于 2016-07-28 13:36:21
回答 2查看 1.2K关注 0票数 0

我有这个MYSQL

代码语言:javascript
复制
SELECT * FROM chat WHERE To_='$NameId' OR From_='$NameId' ORDER BY `DATE` DESC LIMIT 0,50

这段代码按以下顺序返回数据

1 newest 2 newest 3 newest 4 newest 5 newest,但我希望以这种方式返回数据

5 newest 4 newest 3 newest 2 newest 1 newest,我该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-28 13:40:31

用这个:

代码语言:javascript
复制
SELECT * FROM (select * from chat where To_='$NameId' OR From_='$NameId' ORDER BY DATE DESC LIMIT 0,50) sub ORDER BY DATE ASC 
票数 0
EN

Stack Overflow用户

发布于 2016-07-28 13:47:52

据我所知,在获得前50条记录之后,您希望改变记录的方向。

您可以使用MySQL的子查询功能.假设查询的结果是新的、闪亮的表。因此,使用此表(实际上是数据集)为所需的结果编写SQL。(在我们的例子中,我们将它重命名为结果)

代码语言:javascript
复制
SELECT * FROM (select * from chat where To_='$NameId' OR From_='$NameId' ORDER BY DATE DESC LIMIT 0,50) as results ORDER BY results.DATE ASC 

此外,如果您有“计数”的结果,您可以做同样的事情使用单层查询。想想看;

代码语言:javascript
复制
SELECT * FROM chat WHERE To_='$NameId' OR From_='$NameId' ORDER BY `DATE` ASC LIMIT ***MyCount***,50

MySQL不会强迫您重命名子查询结果,但是重命名它们会导致更易读的SQL代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38638098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档