我如何在语句中使用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