2017-10-08 5 views
0

以下の方法を簡略化する方法はありますか?最初の偽でない値

私は思いPythonで
CASE WHEN 
    (a.is_future_release IS TRUE OR aa.is_future_release IS TRUE) THEN TRUE 
    ELSE FALSE 
END 

は:

a.is_future_release or aa.is_future_release or False 

これはmysqlの/ SQLで簡単にすることができますか?

IF(a.is_future_release IS TRUE OR aa.is_future_release IS TRUE, TRUE, FALSE) 

またはブール演算子/速記を使用して::

+0

[MySQLの2つの列で論理論理を実行するにはどうすればよいですか?](https://stackoverflow.com/questions/248683/how-can-i-do-boolean-logic-on-two-columns -in-mysql) –

+0

@ DanielA.Whiteしかし、両方ともfalseに評価された場合、 'a.is_future_release | aa.is_future_release'を実行すると、0ではなくNULLを返します。 – David542

答えて

1

これは、あなたがやりたいことではないでしょうか?

(a.is_future_release OR aa.is_future_release) 

MySQLでは、真偽値が「1」、偽値が「0」のブール値が整数として扱われます。

これと元のクエリとの唯一の違いは、両方の値がNULLの場合はNULLを返す可能性があることです。

+2

あなたは' COALESCE( 、0) 'を返します。 – cars10m

0

IF文は少しクリーナーです

IF(a.is_future_release|aa.is_future_release, TRUE, FALSE) 
関連する問題