2016-11-11 2 views
0

Я хочу вывести все записи сегодня, отсортировано по самой популярной записи (most likes = most popular).Показать самые популярные товары сегодня?

Я использую этот запрос, который просто выбирает самые популярные записи за последние 24 часа, но если это 0:00 часов, например, счетчик должен сбросить до нуля. Я также хочу заказать в алфавитном порядке, если записи имеют одинаковую сумму счета.

Как я мог это достичь? Я пытался использовать ORDER BY count DESC, p.id DESC, но я думаю, что это, похоже, не работает, используя GROUP BY.

__

Это мой код:

SELECT 
p.id, COUNT(l.id) AS count, p.title_de, p.de 
FROM 
pages p 
JOIN pages_likes l on l.page_id = p.id 
WHERE 
l.date >= DATE_SUB(NOW(),INTERVAL 1 DAY) 
AND 
l.`status` = 1 GROUP BY p.id 
ORDER BY count DESC LIMIT 6 

Это выводит, например:

enter image description here

+0

Как можно ** Zocken ** приходите до ** Паприка **, если требуется алфавитный порядок по одному и тому же счету? – Shaharyar

+0

Вот что я хочу исправить. – AlexioVay

+0

хорошо, что вы положили 'имя desc' - это то, что вы хотите? –

ответ

1

Я думаю, вы хотите рассчитывать только записи из текущего дня?

вместо

>= DATE_SUB(NOW(),INTERVAL 1 DAY) 

Удалите часть времени с DATE()

SELECT DATE(NOW()); 

Теперь порядок часть: не использовать зарезервированное слово для псевдонима

SELECT 
     p.id, 
     COUNT(l.id) AS cnt, p.title_de, p.de 

.... 
ORDER BY cnt DESC, p.title_de 
+0

Почему бы не использовать 'alias'? – Shaharyar

+0

Вы правы, это на 'WHERE', где вы не можете использовать псевдоним. –

Смежные вопросы