php + mysql,按名称排序+从特定id开始

时间:2010-09-26 11:55:24

标签: php mysql sql-order-by

MySQL的:

id | name  |
------------
1  | Joe   |
2  | Craig |
3  | Shawn |
4  | Ryan  |
5  | Seth  |

PHP:

$a = mysql_query("SELECT * FROM table_name ORDER BY name DESC");

我想做的是,我想从 id:3 开始,所以它应该输出:

3,4,5,1,2

2 个答案:

答案 0 :(得分:12)

您可以在ORDER BY中使用表达式:

SELECT id, name
FROM table_name
ORDER BY id < 3, id

结果:

3  Shawn
4  Ryan
5  Seth
1  Joe
2  Craig

我还建议您不要使用SELECT *,而是明确列出列。

答案 1 :(得分:6)

编辑:马克是正确的。早期的查询在语法上是不正确的。 使用虚拟别名应该有效!

Select id from
(
    SELECT id FROM table_name 
    WHERE id >= 3 
    ORDER BY id ASC
) X   

UNION

Select * from
(
    SELECT id FROM table_name 
    WHERE id < 3 
    ORDER BY id ASC
) Y

这应该给你3,4,5,1,2