SELECT行WHERE参数

时间:2012-07-11 11:15:51

标签: php mysql

我正在尝试基于get变量进行查询。我使用该变量来指定查询应该找到哪些行。如果没有设置get变量,我希望查询获取所有行。

在代码的前面,我将$ category变量设置为1,2,3。

WHERE products.category = $category

问题:如果没有设置变量,如何让它获取所有行?

6 个答案:

答案 0 :(得分:1)

不要添加where子句或只是

WHERE products.category in (1,2,3)

答案 1 :(得分:1)

你能做的最好的事情是:

$wc = (isset($category)) ? "WHERE products.category = '$category'" : "";
$sql = "SELECT *
       FROM products
       " . $wc;

答案 2 :(得分:0)

如果变量没有值,则省略WHERE子句。

答案 3 :(得分:0)

或者

检查是否设置了$ category

使用 products.category = $ category

否则 1

所以结果将是

WHERE products.category = $ category

其中1

答案 4 :(得分:0)

 WHERE  products.category =(case when $category IS not null 
then $category else products.category end) 

答案 5 :(得分:0)

理想情况下,您可以有条件地添加where语句(如果只存在1,2,3个类别),但如果类别ID是固定的,您可以尝试使用;

if (!isset($category))
{
    $category = "1,2,3";
}

WHERE products.category in ($category)