SELECT *
FROM table WHERE id IN ('21')
AND (content_id IS NULL OR content_id = 0 OR content_id = '')
Czy istnieje krótszy sposób zapisu tego warunku.mysql if not null, 0 lub ""
Mam kolumnę int(), która może być: NULL, 0 lub EMPTY.
SELECT *
FROM table WHERE id IN ('21')
AND (content_id IS NULL OR content_id = 0 OR content_id = '')
Czy istnieje krótszy sposób zapisu tego warunku.mysql if not null, 0 lub ""
Mam kolumnę int(), która może być: NULL, 0 lub EMPTY.
Możesz użyć funkcji IFNULL
w MySQL.
select ____
from tbl
where IFNULL(content_id, 0) = 0
myślę krótsza droga jest taka:
SELECT *
FROM table
WHERE id IN ('21')
AND COALESCE(content_id IN ('0', ''), 1)
content_id IN ('0', '')
może przyjmować następujące wartości:
'0'
lub ''
conent_id IS Null
Jeśli jest zerowy, z COALESCE wracam 1, co odpowiada wartości True.
Nullable kolumna int może być int lub NULL - nie może być pusty ciąg znaków. –
jest content_id kolumna int lub kolumna varchar? jeśli jest to kolumna typu int, nie ma potrzeby sprawdzania, czy content_id = "", więc myślę, że usunę moją odpowiedź :) – fthiella