1

以下のクエリはすべての会話を読み込みますが、私は 2 人の会話のみを読み込みたいと考えていました。

SELECT * FROM msg 
WHERE senderid = '{$sender}' 
OR recid = '{$recipient}' 
OR recid = '{$sender}' 
OR senderid = '{$recipient}' 
order by id asc

AND & OR 演算子を一緒に使用するにはどうすればよいですか? 以下は機能しますか?

SELECT * FROM msg 
WHERE senderid = '{$sender}' 
AND recid = '{$recipient}' 
OR recid = '{$sender}' 
AND senderid = '{$recipient}' 
order by id asc
4

2 に答える 2

4

ANDと を一緒に使用する場合ORは、括弧を使用してロジックをグループ化し、 が期待どおりに動作することを確認します。

SELECT * FROM msg 
WHERE (senderid = '{$sender}' AND recid = '{$recipient}')
OR    (recid = '{$sender}' AND senderid = '{$recipient}')
order by id asc
于 2012-08-21T14:40:59.153 に答える
0

以下をご覧ください。

SELECT * FROM msg 
WHERE (senderid = '{$sender}' AND recid = '{$recipient}') 
OR (recid = '{$sender}' AND senderid = '{$recipient}') 
order by id asc
于 2012-08-21T14:44:19.057 に答える