0

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

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

如果您有任何建议,请让我知道。

4

1 回答 1

0

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

再次感谢!

于 2012-10-16T00:17:14.407 回答