MySQL WHERE如果有,但其他不在数据库中

时间:2014-04-25 17:29:50

标签: php mysql

我试图从MySQL获得结果。但它只有两个都有阀门才有效。 就像数据库中的WHERE都可以工作一样,但是如果只有一个存在于数据库中,而另一个不存在则失败,这就是我现在对代码的看法

        $check_ip = $_GET['ip'];
    $check_username = $_GET['username'];
    $query = "SELECT *, COUNT(ip), COUNT(username) FROM bl WHERE ip = '$check_ip' AND username = '$check_username'";
    $resultID = mysql_query($query, $linkID) or die("Data not found.");

现在如果IP和用户名都在数据库中,它会得到结果,这很好,我也想要结果,如果ip在那里,但用户名不是,反过来。

它说他们都不在那里

正在发生的事情是ip和用户名是否存在。 但如果ip不是,用户名是,那就说他们都没有。

我需要两者的回复,所以如果ip在那里且用户名不是,我需要ip数据

4 个答案:

答案 0 :(得分:1)

为什么不使用OR运算符

"SELECT *, COUNT(ip), COUNT(username) FROM bl WHERE ip = '$check_ip' OR username = '$check_username'"

使用UNION

SELECT *, COUNT(ip), COUNT(username) FROM bl WHERE ip = '$check_ip' 
UNION
SELECT *, COUNT(ip), COUNT(username) FROM bl WHERE username = '$check_username'"

答案 1 :(得分:0)

AND更改为OR,以便MySQL在两个条件中的一个(或两个)为真时对行进行计数。

答案 2 :(得分:0)

由于您的查询中包含' AND'条件,这意味着如果两个值都存在,那么它只返回一个值。你可以改变' AND'条件为' OR'为了达到预期的效果。

答案 3 :(得分:0)

只需更改AND的{​​{1}},请阅读此内容,以后会有所帮助:https://dev.mysql.com/doc/refman/5.0/en/selecting-rows.html