有没有一种方法来简化以下?第一个非假值
CASE WHEN
(a.is_future_release IS TRUE OR aa.is_future_release IS TRUE) THEN TRUE
ELSE FALSE
END
在Python中我会做:
a.is_future_release or aa.is_future_release or False
可这在MySQL/SQL被简化?
有没有一种方法来简化以下?第一个非假值
CASE WHEN
(a.is_future_release IS TRUE OR aa.is_future_release IS TRUE) THEN TRUE
ELSE FALSE
END
在Python中我会做:
a.is_future_release or aa.is_future_release or False
可这在MySQL/SQL被简化?
这难道不是你想要做什么?
(a.is_future_release OR aa.is_future_release)
在MySQL中,布尔值被视为整数,值为“1”为真,“0”为false。
这和你的原始查询唯一的区别是,如果两个值都是NULL
,这可能会返回NULL
。
你可以包装在'COALESCE整个事情(
的IF
说法是有点清洁:
IF(a.is_future_release IS TRUE OR aa.is_future_release IS TRUE, TRUE, FALSE)
或者使用布尔运算符/速记:
IF(a.is_future_release|aa.is_future_release, TRUE, FALSE)
的[我该怎么办布尔逻辑上的两列在MySQL?(https://stackoverflow.com/questions/248683/how-can-i-do-boolean-logic-on-two-columns可能的复制-in-mysql的) –
@ DanielA.White但如果我不'a.is_future_release | aa.is_future_release'如果两者计算结果为假返回'NULL'不为0 – David542