|
|
|
| НУЖНО ОТСОРТИРОВАТЬ данные по мах рейтингу .
Есть 2 поля кот. я выбираю
: g_rating (рейтинг от 1 до 5 )и g_votes (кол-во проголосовавших)
пробывал так
. "\n ORDER BY a.g_rating DESC,a.g_votes DESC "
|
не вышло потому как цепляется за g_votes и соответственно случай когда много голосов - но может быть маленький рейтинг
не читая док сделал так через деление
. "\n ORDER BY a.g_rating/a.g_votes DESC "
|
так работает - Вопрос : допустимо ли это | |
|
|
|
|
|
|
|
для: oppo
(26.08.2006 в 12:07)
| | Приведите запрос полностью | |
|
|
|
|
|
|
|
для: cheops
(26.08.2006 в 15:40)
| |
$sql = "SELECT a.id,a.catid,a.name,a.g_votes,a.g_rating,a.rev_size, cat.name as catname,cat.section "
. "\n FROM #__gid AS a"
. "\n INNER JOIN #__categories AS cat ON cat.id =a.catid AND cat.section='com_gid'"
. "\n WHERE a.published='1' AND a.g_votes<>0 "
. "\n AND (a.expires = '$nullDate' OR a.expires >= '$now' )"
. "\n ORDER BY a.g_rating/a.g_votes DESC "
. "\n LIMIT ".$params->get('limit_query');
|
| |
|
|
|
|
|
|
|
для: oppo
(26.08.2006 в 15:51)
| | ну как можно так оставить с / .. все ж интересно ..- примера не нашел | |
|
|
|
|
|
|
|
для: oppo
(27.08.2006 в 01:43)
| | Да, можно использовать вычисляемые столбцы, обычно их вычисляют в списке столбцов, назначают псевдоним и затем псевдоним подставляют в ORDER BY. | |
|
|
|
|
|
|
|
для: cheops
(27.08.2006 в 11:06)
| | Спасибо ... попробывал с вашей подсказки
$sql = "SELECT a.id, ROUND(a.g_rating/a.g_votes,1) AS VOT ,a.rev_size, cat.name as catname,cat.section "
. "\n FROM #__gid AS a"
. "\n INNER JOIN #__categories AS cat ON cat.id =a.catid "
. "\n WHERE a.published='1' AND a.g_votes<>0 "
. "\n ORDER BY VOT DESC "
|
ТОЖЕ РАБОТАЕТ .. интересно варианты равнозначны | |
|
|
|
|
|
|
|
для: oppo
(27.08.2006 в 12:11)
| | По сути дела да, только в последнем запросе - вычисляемый столбец помещается в результирующую таблицу. | |
|
|
|