Игнорирование повторяющихся записей, но их удары

Я делаю систему каналов, похожую на то, как работает Facebook, и сейчас я пытаюсь реализовать дублирующую функциональность.

если пользователь пишет одно и то же сообщение =, тогда не отображайте его дубликатом, как это обычно делает PHP по умолчанию, но поднимите его вверх, чтобы пользователи знали другого пользователя, как переписал его

Вот мой запрос

$select_posts_from_groups_query = $db->query("SELECT * FROM spud_groups_posts LEFT JOIN spud_groups_members
ON spud_groups_posts.group_url = spud_groups_members.gurl WHERE member_name='$mybb_username' GROUP BY post_body ORDER BY time_posted DESC" );

как я могу сделать так, чтобы оно само обновлялось как последнее обновление, после того как пользователь повторно продублирует его, чтобы пользователи знали, что кто-то еще поделился им

Спасибо 😉

0

Решение

Три решения

Предполагая, что у вас есть поле обновления времени в вашей записи данных под названием time_updatedЕсть несколько вещей, которые вы могли бы сделать:

  1. Вы могли бы просто максимально использовать два:

ORDER BY max(time_posted,time_updated) DESC

Это может вызвать проблемы с NULL хотя значения


  1. замена NULLв time_updated

ORDER BY nvl(time_updated, time_posted) DESC

(Oracle SQL синтаксис nvl() заменители NULL в 1-м параметре во 2-м — не знаю, какую БД вы используете)


  1. всегда хранить time_updated (лучшее решение ИМО). При создании поста (изначально) задайте time_updated = time_created И использовать

ORDER BY time_updated DESC

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector