何时使用或,以及在MYSQL中使用高级搜索查询结果

何时使用或,以及在MYSQL中使用高级搜索查询结果,mysql,variables,Mysql,Variables,我正试图建立一个先进的搜索选项为我们的网站。我很难让它工作?基本上,唯一需要保持不变的是“review\u live=1”,其余的只有在用户搜索时才需要。为什么这不能正常工作,也许我没有使用OR,并且在较长的查询中正确 WHERE review_live = 1 AND city LIKE '%$location%' OR region LIKE '%$region%' OR date BETWEEN '$beginDate' AND '$endDa

我正试图建立一个先进的搜索选项为我们的网站。我很难让它工作?基本上,唯一需要保持不变的是“review\u live=1”,其余的只有在用户搜索时才需要。为什么这不能正常工作,也许我没有使用OR,并且在较长的查询中正确

    WHERE 
    review_live = 1 AND
    city LIKE '%$location%' OR 
    region LIKE '%$region%' OR 
    date BETWEEN '$beginDate' AND '$endDate' OR
    name LIKE '%$name2%' OR
    type LIKE '%$type1%' OR 
    type_2 LIKE '%$type2%' 
    ORDER BY date DESC
第一项建议:

WHERE 
review_live = 1 AND 
(
  city LIKE '%$location%' OR
  region LIKE '%$region%' OR 
  ( date BETWEEN '$beginDate' AND '$endDate' ) OR
  name LIKE '%$name2%' OR
  type LIKE '%$type1%' OR
  type_2 LIKE '%$type2%' 
)
ORDER BY date DESC
编辑: 我猜如果用户不想筛选该条件,您可以将所有
like
字符串替换为
'%'
。然后试试这个:

WHERE 
review_live = 1 AND 
city LIKE '%$location%' AND 
region LIKE '%$region%' AND 
date BETWEEN '$beginDate' AND '$endDate' AND
name LIKE '%$name2%' AND
type LIKE '%$type1%' AND
type_2 LIKE '%$type2%'
ORDER BY date DESC
第一项建议:

WHERE 
review_live = 1 AND 
(
  city LIKE '%$location%' OR
  region LIKE '%$region%' OR 
  ( date BETWEEN '$beginDate' AND '$endDate' ) OR
  name LIKE '%$name2%' OR
  type LIKE '%$type1%' OR
  type_2 LIKE '%$type2%' 
)
ORDER BY date DESC
编辑: 我猜如果用户不想筛选该条件,您可以将所有
like
字符串替换为
'%'
。然后试试这个:

WHERE 
review_live = 1 AND 
city LIKE '%$location%' AND 
region LIKE '%$region%' AND 
date BETWEEN '$beginDate' AND '$endDate' AND
name LIKE '%$name2%' AND
type LIKE '%$type1%' AND
type_2 LIKE '%$type2%'
ORDER BY date DESC

您需要review_live=1和所有其他内容。所有其他的东西都是城市或地区,或者

在哪里 查看_live=1和(…)
按日期订购说明

您希望有review_live=1和所有其他内容。所有其他的东西都是城市或地区,或者

在哪里 查看_live=1和(…)
ORDER BY date DESC

没有错误,只是没有按照我想要的方式进行过滤。例如,当我尝试?type1=2时,它会返回所有记录?如果将类似字符串保留为
%
,则必须将
替换为
。看编辑。太好了,第二个很好用!!就这样!!很好的回答和视觉效果,我下次可以看到如何构造这些查询!!没有错误,只是没有按照我想要的方式进行过滤。例如,当我尝试?type1=2时,它会返回所有记录?如果将类似字符串保留为
%
,则必须将
替换为
。看编辑。太好了,第二个很好用!!就这样!!很好的回答和视觉效果,我下次可以看到如何构造这些查询!!