我一直在尝试用这行代码查询数据库:
$query_check = mysql_query("SELECT *
FROM chat
WHERE sent_by_id || sent_to_id = '$user'
AND sent_by_id || sent_to_id = '$friend_id'");
基本上我要做的是检查两个表中的一个是否构成第一个变量AND如果两个表中的一个构成第二个变量。现在我知道有一个操作符OR但是在这种情况下它不会像你想象的那样起作用。
所以最终结果应该是这样的:
1,2
2,1
1,1
2,2
但我得到的结果如下:
1,1
1,2
2,2
1,1
2,1
4,1
3,1
等等。
答案 0 :(得分:2)
这样做:
WHERE (sent_by_id = '$user' AND sent_to_id = '$friend_id')
OR (sent_by_id = '$friend_id' AND sent_to_id = '$user')
括号内是为了清楚起见。真的不需要。
答案 1 :(得分:0)
使用括号尝试并使用OR运算符
$query_check = mysql_query("SELECT * FROM chat WHERE (sent_by_id = '$user' OR sent_to_id = '$user') AND (sent_by_id = '$friend_id' OR sent_to_id = '$friend_id')");
答案 2 :(得分:0)
$query_check = mysql_query("
SELECT
* -- In stead of *, you can just use: sent_by_id, sent_to_id
FROM
chat
WHERE
(sent_by_id = '$user' OR sent_to_id = '$user')
AND (sent_by_id = '$friend_id' OR sent_to_id = '$friend_id')
");