PHP MYSQL ORDER BY DESC然后ASC
问题描述:
我有这个MYSQLPHP MYSQL ORDER BY DESC然后ASC
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
我该怎么做?
答
使用此:
SELECT * FROM (select * from chat where To_='$NameId' OR From_='$NameId' ORDER BY DATE DESC LIMIT 0,50) sub ORDER BY DATE ASC
答
据我了解,你想改变的记录方向后获得前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代码。
+0
Rijjn已经发布了答案:) – COp
'ORDER BY \'DATE \'ASC'? –
@u_mulder它返回最古老的 – COp
只是'array_reverse'你的输出在PHP? –