MYSQL数据库查询最新10条记录结果排序的问题。

SELECT * FROM `pre_moodwall` ORDER BY id desc limit 10
得到结果如下:
id username
129 383971116
128 徐磊
127 徐磊
126 xufei
125 雪中轩
124 老杜
123 老杜
122 老杜
121 老杜
120 李水灵

这样是得到最新的10条记录了,但排序却反了,如果把DESC去掉,则选出来的就是最早的10条记录了,而不是最新的。

正确的结果应该是这样的才对,如下:
120 李水灵
121 老杜
122 老杜
123 老杜
124 老杜
125 雪中轩
126 xufei
127 徐磊
128 徐磊
129 383971116

-------------------------------------------------------------------------
补充一下:
SELECT *
FROM (SELECT * FROM `pre_moodwall` ORDER BY id DESC) t limit 10
用上面的这个语句在phpMyAdmin中可以执行,但在PHP网页中却不能执行,
错误提示如下:
[Type] 查询语句安全威胁
[Query] SELECT * FROM (SELECT * FROM `moodwall` ORDER BY id DESC) t limit 10

你读取 这些记录 最终是不是要用PHP显示到页面的对吗?

很多情况下, 都会出现类似问题, 你完全可以 利用PHP 数组排序来 处理这个问题

SELECT * FROM `pre_moodwall` ORDER BY id desc limit 10 读出来的结果
放进一个2维数组 ,然后 显示的时候 只要倒着显示就可以了啊。

做无线分类的 时候 排序问题 也都是用PHP解决, 这样还能减少数据库的负担吧,
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-26
作个子查询阿,子句查询最近10个,然后再在主句里面对子句查询的结果按照id进行排序就好了阿追问

能否写出具体的查询语句,这样说不是很明白,对这方面了解比较少。麻烦了。

追答

对啊,对啊,就是你的补充里面的。

相似回答