SELECT *
FROM table WHERE id IN ('21')
AND (content_id IS NULL OR content_id = 0 OR content_id = '')
この条件を書くためのより短い方法はありますか?
NULL、0、またはEMPTYのいずれかになり得るint()列があります。
IFNULL
MySQLで関数を使用できます。
select ____
from tbl
where IFNULL(content_id, 0) = 0
より短い方法はこれだと思います:
SELECT *
FROM table
WHERE id IN ('21')
AND COALESCE(content_id IN ('0', ''), 1)
content_id IN ('0', '')
次の値を想定できます。
'0'
または''
conent_id IS Null
Null の場合、COALESCE を使用して 1 を返します。これは True と同等です。
あなたは試すことができますCOALESCE
:
SELECT * FROM table WHERE id IN ('21')
AND COALESCE(content_id,0) =0;