如何在select语句中添加WHERE hide != 1 ?


How do I add WHERE hide != 1 to my select statement?

$raw_results = mysql_query("SELECT * FROM system_passwords 
    WHERE hide != 1 AND (`id` LIKE '%".$query."%') 
    OR (`system_name` LIKE '%".$query."%') 
    OR (`database_name` LIKE '%".$query."%') 
    OR (`username` LIKE '%".$query."%') 
    OR (`password` LIKE '%".$query."%') 
    OR (`notes` LIKE '%".$query."%') 
    OR (`additional_info` LIKE '%".$query."%')") or die(mysql_error());

我如何或在哪里添加hide != 1到这个?

你必须把or组在一起。如您的查询运行为

WHERE hide != 1 AND (`id` LIKE '%".$query."%')

(system_name LIKE '%".$query."%')

或等等。

这应该按照您的期望对值进行分组。

SELECT * FROM system_passwords 
WHERE (
        (`id` LIKE '%".$query."%') OR 
        (`system_name` LIKE '%".$query."%') OR 
        (`database_name` LIKE '%".$query."%') OR 
        (`username` LIKE '%".$query."%') OR 
        (`password` LIKE '%".$query."%') OR 
        (`notes` LIKE '%".$query."%') OR 
        (`additional_info` LIKE '%".$query."%')
    ) and hide != 1

您还应该切换到PDOmysqli,以便您可以使用预处理语句。这可能会导致SQL注入;不知道$query不能肯定地说…

附加信息:Mysql或/和优先级?

它在正确的位置,但这在逻辑上不那么模棱两可WHERE hide != 1 AND ([a] OR [b] OR [c])