PHP MySQL,按更新字段分组

时间:2012-10-14 07:29:11

标签: php mysql web pdo

我目前正在开展一个项目,我一直在寻找有关我遇到的具体问题的一段时间,所以我来到这里发布问题。

基本上,我有一个表来处理我正在开发的网站上的通知,我正在使用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,因此在查看原始通知后不会再次显示。现在如果在事后创建了新通知,我显然仍然希望显示这些通知。

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

1 个答案:

答案 0 :(得分:0)

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

再次感谢!