更新多行 mysql
Update Multiple Rows mysql
我有一个tabletbl
|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
我可以使用多个查询来更改值,但是任何人都可以展示如何使用一个查询来执行此操作吗?
使用 case 语句...
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
工作fiddle:http://sqlfiddle.com/#!9/6cb0d/1/0
首先,您必须将数组上传到临时文件。 table。我们称它为 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
我有一个tabletbl
|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
我可以使用多个查询来更改值,但是任何人都可以展示如何使用一个查询来执行此操作吗?
使用 case 语句...
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
工作fiddle:http://sqlfiddle.com/#!9/6cb0d/1/0
首先,您必须将数组上传到临时文件。 table。我们称它为 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