0

我正在使用 PHP 和 MySQL 创建消息传递脚本,我需要做的是在收件箱中显示原始消息,当单击特定消息时才显示与原始消息链接的消息链。原始消息应显示给发送者和接收者。

这就是我在我的表中插入的内容

message_id
to_user_id
from_user_id
subject
message
original_message_id

当发起新消息时,该消息original_message_id为空白,但无论谁回复此消息,该列都会 存储与跟踪对话original_message_id相同的 ID 。message_id

现在来测试一下,假设系统 1 和 2 中有两个 user_id。我将新消息从 1 发送到to_user_id2,from_user_id回复也从from_user_id1 发送到to_user_id2。

我的表中有条目没有任何问题。到目前为止,这是正确的。我坚持的是,当我在收件箱中显示新消息时,它会显示两条记录原始消息和回复,这是我正在使用的查询,请让我知道这个查询有什么问题

`SELECT * FROM tbl_messages WHERE `to_user_id` = '1' OR `from_user_id` = '1' AND original_id IS NULL`

我同时使用两者的原因to_user_idfrom_user_id因此系统会为收件人显示原始收到的消息并为发件人显示已发送的消息

任何帮助将不胜感激。

4

1 回答 1

1

运算符的AND优先级高于OR,因此您需要添加括号才能获得预期的解析。

SELECT * FROM tbl_messages WHERE (`to_user_id` = '1' OR `from_user_id` = '1') AND original_id IS NULL
于 2013-09-08T07:37:28.503 回答