我有这个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
我怎么能这样做?
答案 0 :(得分:0)
使用此:
SELECT * FROM (select * from chat where To_='$NameId' OR From_='$NameId' ORDER BY DATE DESC LIMIT 0,50) sub ORDER BY DATE ASC
答案 1 :(得分:0)
根据我的理解,您希望在获得前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***,50
MySQL不会强制您重命名子查询结果,而是重命名 它们会产生更易读的SQL代码。