我有一张表tbl
|id|points|
1 15
2 35
3 445
4 42
现在,如果我有一个像
这样的数组 array (2=>10,3=>825,4=>48)
我想改变这些点,以便tbl
看起来像这样。
|id|points|
1 15
2 10
3 825
4 48
我可以使用多个查询更改值,但是任何人都可以通过一个查询显示如何执行此操作吗?
答案 0 :(得分:2)
使用案例陈述......
Update tbl
set points = CASE
WHEN ID = 1 then 05
when ID = 2 then 10
when ID = 3 then 825
when ID = 4 then 48 END
答案 1 :(得分:0)
首先,您必须将数组上传到temp。表。我们称之为new_list,而不是像
那样UPDATE table as t
SET points = (SELECT points FROM new_list WHERE t.id = new_list.id)
老实说,我不知道这是否在MySQL上运行,所以你可能需要自己考虑一下。
因为看起来数据在PHP数组中,我想可能会呈现类似
的内容UPDATE table SET points = $points WHERE id = $id1
UPDATE table SET points = $points WHERE id = $id2
UPDATE table SET points = $points WHERE id = $id3