2015-10-11 3 views
1

Я пытаюсь подсчитать количество записей в базе данных, группируя их. Это работает отлично, но когда я пытаюсь выполнить заказ, он заказывает счет другим способом, чем нужно. Пример Результат:mysql order by count - ordering by value

Question - Answer - Count 

Q1 - A1 - 1 

Q2 - A2 - 11 

Q3 - A3 - 2 

Результаты поиска: Я хочу 11 после 2-9, а не раньше. Запрос просто:

SELECT Question, Answer, count(*) as `Count` GROUP BY Question, Answer ORDER BY Question, Answer 

Другим примером подобного является то, что MySQL сортирует, как, 1,11,118,12,2,3, где я ожидал большее значение как 1,2,3,11, 12.118

ответ

0

вы положили в запросе

ORDER BY Question, Answer 

Если вы хотите 11 прийти через 2, то, конечно, вы хотите

ORDER BY Count 
1

тр y этот вопрос

SELECT Question, Answer, count(*) as `Count` 
FROM table 
GROUP BY Question, Answer 
ORDER BY count(*) ASC 
0

Проблема возникает, когда я пытался упорядочить по значению символа вместо целочисленного значения? Я должен отдать ответ как целое число, а затем правильно его заказать. Вот запрос, который работает:

SELECT Question, Answer, count(*) as `Count` GROUP BY Question, Answer ORDER BY Question, CAST(answer AS SIGNED INTEGER) 

Найден ответ здесь: Sorting varchar field numerically in MySQL