首先让我给你们 SQLFiddle:http ://sqlfiddle.com/#!2/1d8bd/11
我已经为此工作了一段时间,并且面临着一些程序员(和作家)的障碍。
这是我试图在 MySQL 中完成的示例伪代码:
Return all rows WHERE {
IF `to_user_id` = '27' AND `to_delete` >= SUBDATE(NOW(), INTERVAL 720 HOUR)
RETURN to_delete as del_time, COUNT(*), MAX(subject),
- OR -
IF `from_user_id` = '27' AND `from_delete` >= SUBDATE(NOW(), INTERVAL 720 HOUR) )
RETURN from_delete as del_time, COUNT(*), MAX(subject),
} GROUP BY thread_hash
我本质上是在构建一个私人消息系统,这是代表垃圾箱的查询。相同的行thread_hash
表示线程中的消息。当用户从他们的收件箱中删除一个线程时,它会将所有to_delete
设置NOW()
为该特定的thread_hash
. 当用户从他们的发件箱中删除一个线程时,它from_delete
会NOW()
为该特定的thread_hash
.
我正在尝试构建的查询应该返回所有行 if to_user_id
= $user_id AND to_delete
有一个值 OR if from_user_id
= $user_id AND from_delete
有一个值,按thread_hash
(即您从收件箱或发送箱中删除的线程)分组
我希望我在这里很清楚。请让我知道我是否可以清除其他任何内容。