0

我一直在尝试使用这行代码查询数据库:

$query_check = mysql_query("SELECT * 
                            FROM chat 
                            WHERE sent_by_id || sent_to_id = '$user' 
                               AND sent_by_id || sent_to_id = '$friend_id'");

基本上我要做的是检查两个表中的一个是否构成第一个变量,以及两个表中的一个是否构成第二个变量。现在我知道有一个运算符 OR 但在这种情况下它不会像你想象的那样工作。

所以最终的结果应该是这样的:

1,2  
2,1  
1,1  
2,2  

但我得到这样的结果:

1,1  
1,2  
2,2  
1,1  
2,1  
4,1  
3,1  

等等。

4

3 回答 3

2

这将做:

WHERE (sent_by_id = '$user' AND sent_to_id = '$friend_id') 
   OR (sent_by_id = '$friend_id' AND sent_to_id = '$user')

括号是为了清楚起见。真的不需要。

于 2013-06-26T08:36:19.250 回答
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')
");
于 2013-06-26T08:42:00.807 回答
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')");
于 2013-06-26T08:32:28.110 回答