如果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条件。我该怎么做?
答案 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);