Это мой запрос
SELECT * FROM posts WHERE description like concat('%', :hashtag, '%') ORDER BY STR_TO_DATE(time,'%d-%m-%Y %H:%i:%s') ASC
Я бы хотел выбрать из posts верхних хештегов только в time в последние 24 часа
posts
time
ФОРМАТ ВРЕМЕНИ PHP STR_TO_DATE(time,'%d-%m-%Y %H:%i:%s')
STR_TO_DATE(time,'%d-%m-%Y %H:%i:%s')
Чтобы получить количество постов с одним хэштегом, вам нужно GROUP BY, чтобы иметь возможность COUNT их.С другой стороны, сортировка по времени не имеет никакого смысла.
GROUP BY
COUNT
Это будет выглядеть так:
SELECT COUNT(*) as hashtag_count,hashtag FROM posts WHERE time >= NOW() - INTERVAL 1 DAY GROUP BY hashtag ORDER BY hashtag_count
Вы можете добавить LIMIT x для выполнения запроса.
LIMIT x
Чтобы гарантировать, что все «хэштеги» установлены в пределах определенной даты, вы можете добавить +, - день к дате.
Что касается лучших результатов, есть ли что-то вроде оценки, которая им дается?