在SQL Select中返回0

时间:2016-07-25 12:23:27

标签: php mysql

我有一个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

当$ category_id等于零时,我想要的是返回author.site_id等于$ site_id的所有记录。

1 个答案:

答案 0 :(得分:1)

您可以这样做:

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