[英]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.