我有一個表,我想考慮到一些條件,以更新特定列。例如,VAR1將根據columnC場得到不同的值。我正在使用下面的代碼,並且在MySQL Workbench上沒有錯誤,但是我有0行受到影響。該VAR1當我運行該腳本不會改變。更新SQL表的情況下
update table
set number = columnA * columnB,
var1 = case
when lower(columnC) like '%aaa%' then var1 = number
when lower(columnC) like '%bbb%' then var1 = number * 2
when lower(columnC) like '%ccc%' then var1 = number * 4
else lower(columnC)
end,
var2 = number/var1
;
我試着用不同的更新單獨做每個案例。
update table
set number = columnA * columnB;
這工作正常。
update table
set var1 = number where lower(columnC) like 'aaa';
這並不在所有的工作。該列不受影響。我也試圖消除「低」或將特定field.value,而不是一個變量,但沒有成功
'然後number'等等直接,不需要var = number – Mihai
目前表中的數據是什麼?什麼是表格模式?爲什麼你在沒有通配符的情況下使用'LIKE',你應該能夠使用'='來獲得相同的結果。 –
另外''''aaa''被翻譯成'='aaa'',所以你可能需要通配符,'like'%aaa%';' – Mihai