我有这个MYSQL
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,我该怎么做呢?
发布于 2016-07-28 13:40:31
用这个:
SELECT * FROM (select * from chat where To_='$NameId' OR From_='$NameId' ORDER BY DATE DESC LIMIT 0,50) sub ORDER BY DATE ASC 发布于 2016-07-28 13:47:52
据我所知,在获得前50条记录之后,您希望改变记录的方向。
您可以使用MySQL的子查询功能.假设查询的结果是新的、闪亮的表。因此,使用此表(实际上是数据集)为所需的结果编写SQL。(在我们的例子中,我们将它重命名为结果)
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 此外,如果您有“计数”的结果,您可以做同样的事情使用单层查询。想想看;
SELECT * FROM chat WHERE To_='$NameId' OR From_='$NameId' ORDER BY `DATE` ASC LIMIT ***MyCount***,50MySQL不会强迫您重命名子查询结果,但是重命名它们会导致更易读的SQL代码。
https://stackoverflow.com/questions/38638098
复制相似问题