2016-10-10 85 views
1

我想這樣說:評估truthy值

if field_1 then set field_2 = 1 

含義,如果field_1持有truthy值,做別的事情。 sql中的IF語句可以執行這種評估嗎?

+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)'。 –

回答

2

使用CASE WHEN THEN,如果CASE WHEN爲真,則將field2設置爲1;否則使用ELSE將field2設置爲之前的值。

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

這是一個非常好的方法來做到這一點,我熟悉IS NOT NULL,所以我想你不能做一個真正的評估? –

+0

如果你不想檢查字符串「true」或「1」,只需用'= 1'或'='true''替換'不爲null',那麼mysql中的所有內容都爲null @JosephErickson – baao

+0

@JosephErickson – baao