有沒有一種方法來簡化以下?第一個非假值
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