私は現在プロジェクトに取り組んでおり、私が抱えている特定の問題についてしばらく探し回っていたので、質問を投稿するためにここに来ました。
基本的に、開発中のサイトで通知を処理するテーブルがあり、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 に設定して、元の通知が表示された後に再度表示されないようにするにはどうすればよいですか。事後に新しい通知が作成された場合でも、明らかにこれらを表示したいと思います。
ご提案がありましたら、お知らせください。