简体   繁体   English

SQL QUERY在WHERE语句中使用OR返回所有结果

[英]SQL QUERY returning all results using OR in WHERE statement

Hoping I am just missing something simple here: 希望我在这里遗漏一些简单的东西:

    $sql = "Select * FROM user_info, user_login WHERE user_login.status = '0' OR user_login.status = '2' AND user_info.uid = user_login.uid";

$db = new connection();
                $results = $db->query($sql);

$user = array();    

while($info = mysql_fetch_array($results))

{

$user[] = $info;

}

$total = count($user);
//TEST the amount of rows returned.
echo $total;

for ($i = 0; $i < $total; $i++)
{

//echo data;
}

just trying to pull all data that has the user_login.status field set to "0" or "2" but it shows everything thing and it shows the items marked as 2 twice. 只是尝试将user_login.status字段设置为“0”或“2”的所有数据拉出来,但它显示了所有内容,并显示标记为2的项目两次。 Does anyone see my issue? 有谁看到我的问题?

Your precedence is getting whacked because of missing parentheses: 由于缺少括号,您的优先权受到了打击:

SELECT DISTINCT *
FROM user_info, user_login
WHERE (user_login.status = '0' OR user_login.status = '2')
AND user_info.uid = user_login.uid

Without seeing the data I can't give you more than a SELECT DISTINCT with regards to the duplicate records. 在没有看到数据的情况下,我不能给出关于重复记录的SELECT DISTINCT

Select * FROM user_info, user_login WHERE (user_login.status = '0' OR user_login.status = '2') AND user_info.uid = user_login.uid 选择* FROM user_info,user_login WHERE(user_login.status ='0'或user_login.status ='2')AND user_info.uid = user_login.uid

Order of precedence :) 优先顺序 :)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM