如何将“OR”条件运算符附加到MySQL动态查询(PHP)?

时间:2013-01-30 12:22:46

标签: php mysql

我正在构建一个动态查询字符串,我遇到了如何附加OR条件运算符的问题。

对于AND运算符来说很容易,就像这样:

$base_query = "SELECT * FROM `tropical_fruits` WHERE 1 "

然后,要附加另一个查询,我只需执行以下操作:

$query_1 = "AND `colour` = $fruit_colour;
$final_query = $base_query . $query_1;

但是如何附加OR运算符?

例如,如果我只是简单地追加OR:

$query_1 = "OR `colour` = $fruit_colour;

...查询不再产生正确的结果(意味着查询将检索表中的每条记录)。

所以问题是......

基本查询应该是什么,以便它足够灵活,可以附加任何一个AND和/或OR条件,同时记住用户可以提交两个OR条件 < / em>的

如果这个问题不清楚,我很抱歉......我在解释它时遇到了困难! ; - )

主要的是,我正在编写一个接受搜索查询的函数,并返回结果。搜索功能需要能够接受以下查询:

 AND WHERE = 
 AND WHERE LIKE
 OR WHERE =
 OR WHERE LIKE

基本上,我需要将上述查询附加到如下所示的基本查询:

$base_query = 'SELECT * FROM `' . $table_name . '` WHERE 1 '; 

提前致谢!

2 个答案:

答案 0 :(得分:3)

  

SELECT * FROM Persons WHERE LastName ='Svendson'AND(FirstName ='Tove'   或FirstName ='Ola')

答案 1 :(得分:0)

条件紧挨着&#34; OR&#34;总是可选的。在您的基本查询中,&#34;其中&#34;条件将允许表中的所有文档。您仍希望限制选择查询的结果 尝试如下,

$query_1 = " AND (`colour` = $fruit_colour OR 'type'=$some_type)";

您可以使用混合括号和条件运算符来限制结果。

并确保这些运营商的执行优先级。