SELECT *
FROM table WHERE id IN ('21')
AND (content_id IS NULL OR content_id = 0 OR content_id = '')
Có cách viết ngắn hơn điều kiện này không.mysql nếu không null, 0 hoặc ""
Tôi có một cột int() có thể là: NULL, 0 hoặc EMPTY.
SELECT *
FROM table WHERE id IN ('21')
AND (content_id IS NULL OR content_id = 0 OR content_id = '')
Có cách viết ngắn hơn điều kiện này không.mysql nếu không null, 0 hoặc ""
Tôi có một cột int() có thể là: NULL, 0 hoặc EMPTY.
Bạn có thể sử dụng chức năng IFNULL
trong MySQL.
select ____
from tbl
where IFNULL(content_id, 0) = 0
Tôi nghĩ rằng cách ngắn hơn là thế này:
SELECT *
FROM table
WHERE id IN ('21')
AND COALESCE(content_id IN ('0', ''), 1)
content_id IN ('0', '')
có thể giả định các giá trị:
'0'
hoặc ''
conent_id IS Null
Nếu đó là Null, với COALESCE tôi trả về 1, tương đương với True.
Cột int có thể vô hiệu có thể là int hoặc NULL - không thể là chuỗi rỗng. –
là content_id một cột int hoặc một cột varchar? nếu đó là một cột int không cần phải kiểm tra xem content_id = '' vì vậy tôi nghĩ rằng tôi sẽ xóa câu trả lời của tôi :) – fthiella