Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > сортировка по одинаковым строкам


Автор: carcas 17.12.2007, 19:57
Подскажите, пожалуйста

Есть таблица:
ID|name
1 |  Мерседес
2 |  Ауди
3 |  Мерседес
4 |  Ауди
5 |  Фольксваген
6 |  Мерседес

Как сделать сортировку, чтобы при запросе "select distinct(name)" сортировка была по количеству одинаковых строк-> вот так:

Мерседес (вверху, потому что встречается 3 раза)
Ауди         (2 раза)
Фольксваген (встречается всего 1 раз)

Автор: skyboy 17.12.2007, 20:15
Код

SELECT `name`
FROM `table`
GROUP BY `name`
ORDER BY count(*)

Автор: carcas 18.12.2007, 08:37
Спасибо, Skyboy!

Пробую, как вы написали
Код


mysql_select_db($database_joom, $joom);
$query_Recordset1 = "SELECT `name` FROM `cars` GROUP BY `name` ORDER BY COUNT(*)";
$Recordset1 = mysql_query($query_Recordset1, $joom) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);

 

но "лыжи не едут", эксплорер выдает "Invalid use of group function", когда пишу в запросе ORDER BY COUNT(*). Ладно бы на запрос ругался! 

Может и тут поможете?

Автор: igorold 18.12.2007, 09:00
попробуй так:
Код

SELECT `name`, count(name) as Ind FROM `cars` GROUP BY `name` ORDER BY Ind;

Автор: carcas 18.12.2007, 10:12
СПАСИБО БОЛЬШОЕ, igorold

Работает! А подскажите, пожалуйста чайнику, что это за команда "Ind"

Еще раз, спасибо!

Автор: Feldmarschall 18.12.2007, 10:23
это не команда. это алиас.
вместо order by ind можно было написать order by count(name)

Автор: carcas 18.12.2007, 10:30
Понял, спасибо

Автор: skyboy 18.12.2007, 10:39
carcas, у меня в версии 5.1 работало.
следовательно, мораль: указывайте Вашу версию, чтоб не было кривотолков.

Автор: carcas 18.12.2007, 11:33
Понятно, буду указывать на будущее, извините, сразу не догадался...

Автор: vi_k 31.12.2007, 07:42
2skyboy:

Цитата

carcas, у меня в версии 5.1 работало.
следовательно, мораль: указывайте Вашу версию, чтоб не было кривотолков.


Мне показалось, что в данном случае эта мораль больше относится к вам smile Без обид

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)