mysql更新语句很简单,更新一条数据的某个字段,一般这样写:
UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';
如果更新同一字段为同一个值,mysql也很简单,修改下where
即可:
UPDATE mytable SET myfield = 'value' WHERE other_field in ('other_values');
这里注意,other_values
是一个逗号,
分隔的字符串,如:1,2,3
那如果是MySQL批量修改不同的记录为不同的值呢?
1 常规方案
那如果修改多条数据为不同的值,可能很多人会这样写:
foreach ($display_order as $id => $ordinal) { $sql = "UPDATE categories SET display_order = $ordinal WHERE id = $id"; mysql_query($sql); }
即是循环一条一条的更新记录。
一条记录update
一次,这样性能很差,也很容易造成阻塞。
2 高效方案
那么能不能一条sql语句实现批量更新呢?
继续阅读MySQL批量修改