2012-09-15 65 views
0

我有一个SQL命令是:SQL结果以不同的顺序

SELECT * 
FROM `tattoos` 
ORDER BY id DESC 
LIMIT 176 ,5 

我要订购结果递增。

所以刚开始我得到

176 177 178 179 180 

但我希望它是

180 179 178 176 175 

我不希望所有的结果是在一个不同的顺序,以便

SELECT * 
FROM `tattoos` 
ORDER BY id ASC 
LIMIT 176 ,5 

会不工作,因为我会从查询中得到其他结果。

我已经尝试过

SELECT * 
FROM `tattoos` 
ORDER BY id DESC, id asc 
LIMIT 176 , 8 

但是这不会改变我的结果。

+0

跟踪偏移的和应用过滤器,例如'WHERE id> 175 ORDER BY id LIMIT 5'? – eggyal

+0

@eggyal不,我不会得到的结果,如果一个值时便会去除。 –

回答

2
SELECT * FROM (
SELECT * 
FROM `tattoos` 
ORDER BY id ASC 
LIMIT 176 ,5 
) AS t 
ORDER BY id DESC 
+0

我得到#1248 - 每一个派生表必须有它自己的别名 –

+0

@SvenB尝试添加别名'AS t' – xdazz

+0

THX工作太棒了! –

0

尝试:

SELECT * FROM (
    SELECT * 
    FROM `tattoos` 
    LIMIT 176 ,5 
    ORDER BY id 
) 
ORDER BY id DESC