Mysql WHERE子句帮助



我如何在语句中使用WHERE MySQL子句,可以获取我所有的记录?我有条件地设置WHERE条件。像…

if (this) {
    $mycondition=1;
} elseif (that {
    $mycondition=????
}
'SELECT * FROM table WHERE category='.$mycondition

????的值应该是多少这样当我将它传递给sql语句时,它就会获取所有的记录。我在想,WHERE category='*'可能工作,但它没有。

您需要逐块构建WHERE条件:

  • 以空数组
  • 开始
  • 根据搜索表单输入添加一些条件(如添加"category=1"或"name like…")
  • implode(" AND ", $array)将把条件粘贴在一起
  • 将此连接到SQL
  • 如果没有条件,就不要放where子句

最好的答案是根本不使用WHERE子句,如果您没有要满足的条件,则建议作为peufeu答案的一部分:

SELECT * FROM table;

是完全有效的。

然而,如果你在一种情况下,你必须有一个WHERE子句(或者它非常容易有一个),按照Nanne的建议,并把一个"永远为真"的条件作为你的第一个子句,所以像:

$query = 'SELECT * FROM TABLE WHERE true';
if (this) {
    $query = $query . ' AND column=this';
}

你可以直接使用

if(this){
   $mycondition=" category=1";
}elseif(that{
   $mycondition= " 1"; //1 = 'true'. You could also use "1=1
}
'SELECT * FROM table WHERE '.$mycondition

最新更新