【问题标题】:PHP MySQL, Group By Update FieldPHP MySQL,按更新字段分组
【发布时间】:2012-10-04 12:21:30
【问题描述】:

我目前正在做一个项目,我一直在寻找我遇到的具体问题,所以我来这里发布问题。

基本上,我有一个表格来处理我正在开发的网站上的通知,并且我正在使用 GROUP BY 来处理冗余通知,例如如果有人多次评论同一件事,我只想显示最新通知.这是我正在使用的查询示例(我在 PHP 中使用 PDO 驱动程序):

SELECT * FROM
((SELECT `a`,`b`,`c` FROM `table` WHERE `c` IN ($array) AND `b` IN ('a','b') AND  `read`='false' AND `id`!='xxx' GROUP BY `c` )
UNION ALL
(SELECT `a`,`b`,`b` FROM `table` WHERE `b` IN ('a','b') AND `id`='xxx' AND `read`='false' ) ) as x ORDER BY `id` DESC LIMIT 15

问题出在这个查询之后,所以基本上,在我的通知窗口中,当用户查看所有这些时,我将他们所有的读取列设置为 true。现在,当用户重新加载页面时,它会显示下一个我原本打算隐藏的通知。

基本上,如何将与原始查询不匹配的所有内容设置为 true,以便在查看原始通知后不再显示。现在,如果事后创建了一个新通知,显然我仍然希望显示这些通知。

如果您有任何建议,请告诉我。

【问题讨论】:

    标签: php mysql web pdo


    【解决方案1】:

    顺便说一句,我想出了这一点,以防万一将来有人遇到这个问题。在循环结果集时,我将每个 ID 存储在一个数组中。在此之后,我只是设置了另一个查询,将所有不在数组中的 ID 设置为在两个原始最低和最高 ID 之间“读取”。它完美地工作。不确定我在这里传达了最好的答案,但如果有人对此有任何疑问,请告诉我。

    再次感谢!

    【讨论】:

      猜你喜欢
      • 2017-06-17
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 2013-11-08
      • 1970-01-01
      • 2011-04-08
      相关资源
      最近更新 更多