我有一个SQL查询。我使用一个PHP函数来运行它,其中有两个PHP变量。有时PHP变量中的一个将为零,这将不会产生任何结果。有一种方法来调整它,以便如果变量是零,它将返回所有记录的基础上的其他条件?
SELECT
`author`.name,
`author`.id,
`category`.name as cat_name
FROM
`post`
INNER JOIN `author` ON (`author`.id = `post`.author)
INNER JOIN `category` ON (`category`.id = `post`.category_id)
WHERE `author`.site_id='".$site_id."' AND `post`.category_id='".$category_id."'
AND `category`.id <> 0
GROUP BY `post`.author我想要的是,当author.site_id等于零时,返回$category_id等于$site_id的所有记录。
发布于 2016-07-25 12:26:19
你可以这样做:
WHERE (`author`.site_id = '".$site_id."' OR $site_id = 0) AND
(`post`.category_id = '".$category_id."' OR $category_id = 0) AND
`category`.id <> 0更典型的情况是,NULL用于缺失值,而不是0。同样的想法也适用于NULL。。。您只需使用IS NULL而不是= 0。
https://stackoverflow.com/questions/38567685
复制相似问题