mysql如果不为null,则为0或“”

时间:2013-02-05 17:20:23

标签: mysql isnull

SELECT * 
  FROM table WHERE id IN ('21') 
   AND (content_id IS NULL OR content_id = 0 OR content_id = '')

是否有更短的方式来编写这种情况。

我有一个int()列,可以是:NULL,0或EMPTY。

3 个答案:

答案 0 :(得分:7)

您可以在MySQL中使用IFNULL功能。

select ____
  from tbl
 where IFNULL(content_id, 0) = 0

答案 1 :(得分:2)

我认为更短的方式是:

SELECT * 
FROM table
WHERE id IN ('21')
      AND COALESCE(content_id IN ('0', ''), 1)

content_id IN ('0', '')可以假设这些值:

  • True 如果conent_id为'0'''
  • 如果conent_id IS Null
  • 错误否则。

如果它是Null,使用COALESCE我将返回1,这相当于True。

答案 2 :(得分:1)

您可以尝试COALESCE

SELECT * FROM table WHERE id IN ('21') 
AND COALESCE(content_id,0) =0;