Имеется таблица MYSQL вида
| id | name | date |
В поле name занесены числовые id пользователей.
Нужно составить тройку тех значений, которые наиболее часто встречаются в поле name... В порядке убывания.
Помогите реализовать.
Спасибо.
Спустя 47 минут, 59 секунд (5.03.2011 - 12:39) Michael написал(а):
SELECT name, COUNT(name) AS cc
FROM mytable
GROUP BY name
ORDER BY cc DESC
LIMIT 3
Спустя 3 часа, 45 минут, 33 секунды (5.03.2011 - 16:24) santaros написал(а):
Michael
Спасибо работает..
Подскажите ещё пожалуйста, каким образом вывести эти самые id 3-х пользователей для следующего sql запроса уже в таблицу users. Что бы отобразить их имена..
Я пока только задал функцию
Которая возвращает мне многомерный массив...
print_r($ret);
print_r($ret[0]);
Из него мне нужно вынести id 4 - 3 и 9 поотдельности.... Но как это сделать не допру никак (((
Подскажите пожалуйста.
Спасибо работает..
Подскажите ещё пожалуйста, каким образом вывести эти самые id 3-х пользователей для следующего sql запроса уже в таблицу users. Что бы отобразить их имена..
Я пока только задал функцию
function sqlTopUsers() {
$result = mysql_query ("SELECT name, COUNT(name) AS cc FROM data GROUP BY name ORDER BY cc DESC LIMIT 3") or die (mysql_error());
while(false !== ($str = mysql_fetch_row($result))) {
$ret[]=$str;
}
if (!empty($ret)) return $ret;
}
Которая возвращает мне многомерный массив...
print_r($ret);
Array ( [0] => Array ( [0] => 4 [1] => 11 ) [1] => Array ( [0] => 3 [1] => 4 ) [2] => Array ( [0] => 9 [1] => 3 ) )
print_r($ret[0]);
Array ( [0] => 4 [1] => 11 )
Из него мне нужно вынести id 4 - 3 и 9 поотдельности.... Но как это сделать не допру никак (((
Подскажите пожалуйста.
Спустя 13 минут, 9 секунд (5.03.2011 - 16:38) Michael написал(а):
$ret[]=$str[0];
Спустя 8 минут, 19 секунд (5.03.2011 - 16:46) santaros написал(а):
спасибо.