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

Den*_*one 2 php mysql

希望我在这里遗漏一些简单的东西:

    $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;
}
Run Code Online (Sandbox Code Playgroud)

只是尝试将user_login.status字段设置为"0"或"2"的所有数据拉出来,但它显示了所有内容,并显示标记为2的项目两次.有谁看到我的问题?

squ*_*man 8

由于缺少括号,您的优先权受到了打击:

SELECT DISTINCT *
FROM user_info, user_login
WHERE (user_login.status = '0' OR user_login.status = '2')
AND user_info.uid = user_login.uid
Run Code Online (Sandbox Code Playgroud)

没有看到数据,我不能给你更多SELECT DISTINCT关于重复记录.