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

时间:2015-08-20 20:55:55

标签: php mysql

$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?

2 个答案:

答案 0 :(得分:2)

您必须将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 or/and precedence?

答案 1 :(得分:1)

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