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

この条件を書くためのより短い方法はありますか?

NULL、0、またはEMPTYのいずれかになり得るint()列があります。

4

3 に答える 3

9

IFNULLMySQLで関数を使用できます。

select ____
  from tbl
 where IFNULL(content_id, 0) = 0
于 2013-02-05T17:21:59.000 に答える
4

より短い方法はこれだと思います:

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

content_id IN ('0', '')次の値を想定できます。

  • conent_id'0'または''
  • null の場合conent_id IS Null
  • それ以外の場合は偽

Null の場合、COALESCE を使用して 1 を返します。これは True と同等です。

于 2013-02-05T18:14:07.170 に答える
2

あなたは試すことができますCOALESCE

SELECT * FROM table WHERE id IN ('21') 
AND COALESCE(content_id,0) =0;
于 2013-02-05T17:23:44.433 に答える