2012-10-14 3 views
0

현재 프로젝트를 진행 중이고 특정 문제에 대해 잠시 동안 살펴 봤습니다. 그래서 여기에 질문을 올리려고 왔습니다.PHP MySQL, 업데이트 그룹 기준 그룹

기본적으로 나는 개발중인 사이트의 알림을 처리하는 테이블을 가지고 있으며, 중복 된 알림을 처리하기 위해 GROUP BY를 사용하고 있습니다. 누군가가 같은 것을 여러 번 언급 한 경우처럼 최신 정보 만 표시하려고합니다. 공고.

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 

문제는 내 알림 창에, 그래서 기본적으로,이 쿼리 이후에 놓여 사용자가이 모든 것을 볼 때, : 여기에 내가 (내가 PHP의 PDO 드라이버를 사용하고 있습니다) 사용하고 쿼리의 예입니다 모든 읽기 열을 true로 설정했습니다. 이제 사용자가 페이지를 다시로드하면 처음에 숨길 의도가있는 다음 알림이 표시됩니다.

기본적으로 원래 쿼리와 일치하지 않는 모든 것을 true로 설정하면 원래 알림을 본 후에 다시 표시되지 않습니다. 사실 이후에 새로운 알림이 생성되면, 여전히 분명히 표시되기를 바랍니다.

의견이 있으면 알려 주시기 바랍니다.

답변

0

그런데 나는 미래에이 문제가 생길 때를 대비해서 이것을 알아 냈습니다. 결과 세트를 반복하면서 각 ID를 배열에 저장했습니다. 이 후 나는 원래의 두 개의 가장 낮은 ID와 가장 높은 ID 사이에서 "읽기"로 설정된 배열에없는 모든 ID를 설정하기 위해 다른 쿼리를 설정했습니다. 그것은 완벽하게 작동합니다. 확실한 답변을 여기에 전달했는지는 모르겠지만 누군가 질문이 있으면 알려주세요.

다시 한번 감사드립니다!