我试图从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数据
答案 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