MySQL ЗАКАЗАТЬ ПО СЧЕТУ ()? - PullRequest
       3

MySQL ЗАКАЗАТЬ ПО СЧЕТУ ()?

10 голосов
/ 12 ноября 2011

У меня есть таблица настройки в моей базе данных с этой структурой (http://cl.ly/3D1D3m1O0v3d0x2j0Z0E)

Я выполняю запрос через цикл while, и я хочу упорядочить по количеству столбца prof.

Вот так выглядит мой запрос, хотя я продолжаю получать ошибки.

$order_list = mysql_query("
    SELECT COUNT(prof), 
    FROM prof_rating 
    ORDER BY COUNT(prof) ASC");

Это предупреждение, которое я продолжаю получать.

Предупреждение: mysql_fetch_assoc () ожидает, что параметр 1 будетресурс, логическое значение, указанное в

Ответы [ 2 ]

15 голосов
/ 12 ноября 2011

Для чего бы то ни было, любое использование агрегатной функции в списке выбора означает, что в наборе результатов будет только одна строка.Не имеет смысла сортировать набор результатов с одной строкой.

Если вы хотели получить количество оценок на отдельное значение prof, вы должны использовать это:

$order_list = mysql_query("
    SELECT prof, COUNT(*) AS PROFCOUNT, 
    FROM prof_rating 
    GROUP BY prof
    ORDER BY PROFCOUNT ASC'");

Товыведет несколько строк, по одной строке на значение prof, с количеством строк для каждого заданного значения prof.

6 голосов
/ 12 ноября 2011

Псевдоним имя столбца, а затем поместите его в ваш заказ по предложению:)

$order_list = mysql_query("
SELECT COUNT(prof) AS PROFCOUNT, 
FROM prof_rating 
ORDER BY PROFCOUNT ASC'");
...