MySQL Ordering Lists Вопрос - PullRequest
       2

MySQL Ordering Lists Вопрос

2 голосов
/ 11 октября 2010

У меня есть следующий код:

SELECT    q21coding, COUNT(q21coding) AS Count 
FROM      `tresults_acme` 
WHERE     q21 IS NOT NULL AND q21 <> '' 
GROUP BY  q21coding 
ORDER BY  Count DESC

Возвращает следующее:

q21coding                                  Count 
Difficulty in navigating/finding content     53
Positive comments                            28
Suggestions for improvement                  14
Inappropriate content/use                    13
Improve search facility                       6
Include information about staff and teams     5
Content needs updating                        4
Other                                        30

Вы заметите, что Other является вторым внизу - есть ли способ убедиться, что Other всегда ВСЕГДА внизу, независимо от размера счета?

Спасибо

Гомер

Ответы [ 3 ]

5 голосов
/ 11 октября 2010
ORDER BY IF(q21coding = 'Other', 1, 0) ASC, Count DESC
1 голос
/ 11 октября 2010

@ reko_t ответ действителен, но на самом деле нет необходимости использовать функцию IF().

В MySQL вы можете использовать любое выражение в ORDER BY caluse, и q21coding = 'Other' было бы достаточно:

... ORDER BY q21coding = 'Other', Count DESC

Выражение q21coding = 'Other' вернет 1, если истина, или 0, если ложь. Это поместит строки с q21coding = 'Other' внизу.

0 голосов
/ 11 октября 2010

Да, добавьте искусственное поле, которое равно 1 для «Другое» и 0 для чего-либо еще.Затем сделайте «ЗАКАЗАТЬ КУКЛУ, граф».

...