Как мне упорядочить список в MySQL, чтобы вначале всегда отображался определенный идентификатор? - PullRequest
1 голос
/ 01 марта 2011

MySQL

+----+
| id |
+----+
| 1  |
+----+
| 2  |
+----+
| 3  |
+----+
| 4  |
+----+

Как мне упорядочить этот список, чтобы сначала всегда отображался символ 2?Он должен вывести 2, 1, 3, 4, а не 1, 2, 3, 4. Или я мог бы также выбрать 3, чтобы показать первым, поэтому он вывел бы 3, 1, 2, 4.

PHP

$a = mysql_query("SELECT * FROM table ORDER BY ???");

Ответы [ 3 ]

4 голосов
/ 01 марта 2011
SELECT * FROM table 
ORDER BY CASE WHEN ID = 2 THEN 0 ELSE ID END
3 голосов
/ 01 марта 2011

Я использую этот трюк:

SELECT
   IF (`id` = 2, -1, `id`) AS `weight`
FROM `table` ORDER BY `weight` ASC;

Мне нравится ответ Криса, это лучший способ наверняка! (Вы чему-то учитесь каждый день)

0 голосов
/ 01 марта 2011

Еще один прием - использовать функцию field ()

select * from table order by field(2,id) desc,id
...