#mysql #sql-order-by
#mysql #sql-order-by
Вопрос:
У меня в базе данных настроена таблица с такой структурой:
Я запустил запрос через цикл while, и я хочу упорядочить по количеству столбца prof.
Вот как выглядит мой запрос в настоящее время, хотя я продолжаю получать ошибки.
$order_list = mysql_query("
SELECT COUNT(prof),
FROM prof_rating
ORDER BY COUNT(prof) ASC");
Это предупреждение, которое я продолжаю получать.
Предупреждение: mysql_fetch_assoc() ожидает, что параметр 1 будет ресурсным, логическое значение, заданное в
Ответ №1:
Как бы то ни было, любое использование агрегатной функции в списке выбора означает, что результирующий набор будет иметь только одну строку. Нет смысла сортировать набор результатов по одной строке.
Если вы хотели получить количество оценок для каждого отдельного значения prof, вам следует использовать это:
$order_list = mysql_query("
SELECT prof, COUNT(*) AS PROFCOUNT,
FROM prof_rating
GROUP BY prof
ORDER BY PROFCOUNT ASC'");
Это выведет несколько строк, по одной строке на значение prof, с количеством строк для каждого заданного значения prof.
Комментарии:
1. Спасибо за предложение. По сути, я понял, в чем заключалась проблема, у меня был дополнительный ‘ в моем mysql_query, и это вызывало предупреждающее сообщение. Не могу поверить, что я сначала проглядел это.
Ответ №2:
Измените псевдоним имени столбца, а затем поместите его в ваше предложение order by 🙂
$order_list = mysql_query("
SELECT COUNT(prof) AS PROFCOUNT,
FROM prof_rating
ORDER BY PROFCOUNT ASC'");