2016-10-10 5 views
1

は、私のような何かを言いたかったです。 SQLのIF文がこの種の評価を実行できますか?評価truthy値

+0

'field_2'を' field_1'が偽であれば何にするべきですか? –

+0

@RocketHazmat私の質問は、if then elseステートメントの構文ではなく、真実の評価をすることができるかどうかでさらに多くをしなければならないと思います。 –

+0

['IF()'関数](http://dev.mysql.com/doc/refman/5.5/en/control-flow-functions.html#function_if)で試すことができます。何かのように: 'SET field_2 = IF(field_1、1、0)'。興味深い@RocketHazmat –

答えて

2

CASE WHEN THENを使用し、CASE WHENがtrueの場合はfield2を1に設定します。それ以外の場合は、ELSEを使用してfield2を元の値に設定します。

UPDATE table 
SET field2 = CASE 
WHEN field1 IS NOT NULL 
THEN 1 
ELSE field2 
END; 
+0

これはこれを行うには本当に良い方法です。私はIS NOT NULLに精通していたので、真実の評価をすることはできませんね。 –

+0

mysql @JosephEricksonでヌル以外のものはすべてtrueです。 – baao

+0

@JosephErickson文字列 'true'または' 1'をチェックしたくない場合は、単に 'is not null'を' = 1'または '= 'true' – baao