SQLServer如何更高效的更新(UPDATE)多行同字段不同内容?
in 读书学习 with 0 comment

SQLServer如何更高效的更新(UPDATE)多行同字段不同内容?

in 读书学习 with 0 comment

SQLServer如何更高效的更新(UPDATE)多行同字段不同内容?

通常情况下,我们会使用以下SQL语句来更新字段值: 复制代码 代码如下:

UPDATE mytable SET myfield='value' WHERE other_field='other_value';

但是,如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢? 举个例子,我们一般会这么做:

foreach ($display_order as $id => $ordinal) {
$sql="UPDATE categories SET display_order = $ordinal WHERE id = $id";
mysql_query($sql);
}

上面的代码简单,方法也没错,但是SQL语句却需要多次执行,降低服务器运行效率。有没有什么更好的办法吗? 下面这种方法将可能解决你的问题。

UPDATE mytable
SET myfield = CASE other_field
WHEN 1 THEN 'value'
WHEN 2 THEN 'value'
WHEN 3 THEN 'value'
END
WHERE id IN (1,2,3)
Responses
');