用double查询数据库或签入并检查

时间:2013-06-26 08:29:11

标签: php mysql sql database

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

$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  

等等。

3 个答案:

答案 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')
");