Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL,如果PHP值为空,则忽略where cause_Php_Mysql_Sql_Where Clause_String - Fatal编程技术网

SQL,如果PHP值为空,则忽略where cause

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

如果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='$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的伪值