初始mysql表
RowIdPaidusedUnique | TypeOfBookkeepingRecord
---------------------------------------------
1 | 45
2 | 45
3 | 4
查询
UPDATE 2_1_paidused
SET TypeOfBookkeepingRecord = CASE RowIdPaidusedUnique
WHEN ? THEN ? WHEN ? THEN ?
AND TypeOfBookkeepingRecord <> ?
END;
数组是
Array
(
[0] => 1
[1] => 5
[2] => 2
[3] => 5
[4] => 4
)
想要获得
RowIdPaidusedUnique
为1且TypeOfBookkeepingRecord不为4,然后将TypeOfBookkeepingRecord
更改为5
RowIdPaidusedUnique
为2且TypeOfBookkeepingRecord不为4,然后将TypeOfBookkeepingRecord
更改为5
但结果得到了
RowIdPaidusedUnique | TypeOfBookkeepingRecord
---------------------------------------------
1 | 5
2 | 1
3 |
AND TypeOfBookkeepingRecord <> ?
我是否需要更改为
WHEN ? AND TypeOfBookkeepingRecord <> ? THEN ?
答案 0 :(得分:2)
您希望使用CASE
语句执行此操作,并将条件TypeOfBookkeepingRecord is not 4
放入WHERE
。
在此处查看演示小提琴http://sqlfiddle.com/#!2/9c831/1
UPDATE table1
SET TypeOfBookkeepingRecord =
(CASE WHEN RowIdPaidusedUnique = 1 then 5
WHEN RowIdPaidusedUnique = 2 then 1 END)
WHERE TypeOfBookkeepingRecord != 4