SQL,如果PHP值为空,则忽略where cause
如果PHP值为空,是否有人知道如何让mysql查询忽略特定的where条件。我试图创建一个高级搜索引擎,其中包含许多严格的where条件来过滤搜索,但是如果PHP值为空,则希望SQL忽略一些where原因。 例如:SQL,如果PHP值为空,则忽略where cause,php,mysql,sql,where-clause,string,Php,Mysql,Sql,Where Clause,String,如果PHP值为空,是否有人知道如何让mysql查询忽略特定的where条件。我试图创建一个高级搜索引擎,其中包含许多严格的where条件来过滤搜索,但是如果PHP值为空,则希望SQL忽略一些where原因。 例如: $condition_1 = ' '; $condition_2 = 'Random'; mysql_query("SELECT something FROM table WHERE row_1='$condition_1' && row_2='$condit
$condition_1 = ' ';
$condition_2 = 'Random';
mysql_query("SELECT something FROM table WHERE row_1='$condition_1' && row_2='$condition_2'")
查询中将有15个where原因,因此任何涉及针对不同搜索组合进行多个查询的操作都是不可行的
$condition_1为空,将只向第_1行中没有值的人显示结果,但我只想让查询在PHP值$condition_1为空时忽略第_1行的条件。我该怎么做呢?您可以动态构造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);
您可以动态构造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);
我认为你的疑问是错误的。使用AND代替&&@dkakoti-
&&
相当于和
和an。我认为您的查询是错误的。使用AND代替&&@dkakoti-和&
相当于和
,并且在满足第一个条件时,sql将是“从表中选择某物,其中1行为“$condition\u 1”,这很好。请注意,表达式“WHERE 1”只是一个在满足第一个条件时始终计算为true的伪表达式。sql将是“从表中选择某物,其中1行为“$condition_1”,这很好。请注意,表达式“WHERE 1”只是一个始终计算为true的伪值