我有一个消息表,其中包含我运行一些运算符的列。有几个 threadid,我通过检查一个值是否匹配 uidto 或 uidfrom 来提取消息,然后检查一个值是否在 hidden1 或 hidden2 中(或者基本上一个用户删除了线程,但我们希望它仍然对另一个用户可见...)
编辑:
值得注意的是, hidden1 和 hidden2 列的值是选择对自己隐藏线程的用户 ID。
当一个用户有多个线程,并且我将一个线程设置为已删除(hidden1 值 = 1)时,查询不会拉取任何其他线程,尽管它们的 hidden1 和 hidden2 列仍然为 NULL。
我在这里有一个 SQL Fiddle,其中包含表中的数据和我一直在玩的查询:http ://sqlfiddle.com/#!2/e3c39c/3
显示具有多个 threadid 的所有结果
注意只有 threadid 1 的列 hidden1 具有值
SELECT uidto, uidfrom, threadid, hidden1, hidden2 FROM messages;
尝试提取结果
mysql 看到我的线程之一,其列 hidden1 具有值并且没有显示,即使其他线程 hidden1 和 hidden2 列仍然为 NULL?
SELECT * FROM messages
WHERE (uidto=1 OR uidfrom=1)
AND (hidden1 <> 1 OR hidden2 <> 1)
GROUP BY threadid
ORDER BY last_activity DESC