php + mysql, порядок по имени + начиная с определенного идентификатора - PullRequest
7 голосов
/ 26 сентября 2010

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 ]

12 голосов
/ 26 сентября 2010

Вы можете использовать выражение в ORDER BY:

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

Результат:

3  Shawn
4  Ryan
5  Seth
1  Joe
2  Craig

Я бы также посоветовал вам не использовать SELECT * и вместо этого перечислятьстолбцы явно.

6 голосов
/ 26 сентября 2010

РЕДАКТИРОВАТЬ: Марк является правильным.Предыдущий запрос был синтаксически неверным.Использование псевдонимов должно работать!

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

...