我正在尝试基于get变量进行查询。我使用该变量来指定查询应该找到哪些行。如果没有设置get变量,我希望查询获取所有行。
在代码的前面,我将$ category变量设置为1,2,3。
WHERE products.category = $category
问题:如果没有设置变量,如何让它获取所有行?
答案 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)