SQL,忽略PHP值为空的原因

时间:2014-04-26 12:06:52

标签: php mysql sql where-clause string

如果PHP值为空,有没有人知道如何让mysql查询忽略某个where条件。我正在尝试创建一个具有许多严格条件来过滤搜索的高级搜索引擎,但是如果PHP值为空,则希望SQL忽略某些原因。 例如:

$condition_1 = ' ';
$condition_2 = 'Random';
mysql_query("SELECT something FROM table WHERE row_1='$condition_1' &&     row_2='$condition_2'")

查询中会有15个原因,因此任何涉及对不同搜索组合进行多次查询的内容都是不可行的。

$ condition_1为空,只显示row_1中没有值的结果,但我只想让PHP值$ condition_1为空时查询忽略row_1条件。我该怎么做?

1 个答案:

答案 0 :(得分:5)

您可以动态构建where条件,请注意,如果两个条件都为空,这也可以使用

$sql = "SELECT something FROM table where 1 ";

if(trim($condition_1) != '')
    $sql .= " AND  row_1='$condition_1'";

if(trim($condition_2) != '')
    $sql .= " AND  row_2='$condition_2'";

mysql_query($sql);