在没有干扰的查询中使用AND,OR

时间:2011-10-08 06:31:53

标签: php mysql

编写一个结合了AND,OR而没有任何干扰的查询的最佳方法是什么 例如

sql= " select * from table where category=5 AND itme_name LIKE %$x% OR item_detail LIKE %x% " ;

我想要的是像

 category=5 AND ( itme_name LIKE %$x% OR item_detail LIKE %$x%  ) 

ican通过使用2个查询来做到这一点 或类似的东西

select * from table where category=5 AND category IN(
select category from table where itme_name LIKE %$x% OR item_detail LIKE %x% )

但我想知道如果没有那个内部查询我能做到这一点我不知道可能在第二部分使用括号吗?

1 个答案:

答案 0 :(得分:1)

使用括号更改precedence(没有括号并且优先级高于OR):

category=5 AND (itme_name LIKE '%$x%' OR item_detail LIKE '%$x%') 

注意:

  • 我还添加了缺失的引号和一个美元符号。
  • 请注意:itme_name很可能拼写错误。它应该是item_name。您可能还需要修复表定义以及使用拼写错误的所有其他查询。