忽略重复的记录但是把它们砸到顶部

时间:2014-10-03 09:15:17

标签: php mysql sql duplicates feeds

我正在创建一个类似于facebook工作方式的Feed系统,我正在尝试实现的是重复功能。

如果用户写了相同的帖子=然后不要像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" );

如果用户重复更新它,我怎么能让它自我冲击最新更新它会让用户知道其他人已共享它

谢谢;)

1 个答案:

答案 0 :(得分:0)

三种解决方案

假设您的数据记录中有一个名为time_updated的更新时间字段,您可以执行以下操作:

  1. 你可以简单地说两个:
  2.   

    ORDER BY max(time_posted,time_updated) DESC

    这可能会导致NULL值出现问题


    1. NULL
    2. 中替换time_updated s
        

      ORDER BY nvl(time_updated, time_posted) DESC

      (Oracle sql语法nvl()用第二个参数替换第一个参数中的NULL - 不知道你正在使用什么数据库)


      1. 始终存储time_updated(最佳解决方案IMO)。创建帖子(最初)时设置time_updated = time_created并使用
      2.   

        ORDER BY time_updated DESC