MySQL UPDATE多条
发布时间:
示例1
js
UPDATE tableName SET
column1 = CASE column2
WHEN column1Value1 THEN column2Value1
WHEN column1Value2 THEN column2Value2
WHEN column1Value3 THEN column2Value3
END,
column3 = CASE column2
WHEN column3Value1 THEN column2Value1
WHEN column3Value2 THEN column2Value2
WHEN column3Value3 THEN column2Value3
END
WHERE column2 IN (column2Value1, column2Value2, column2Value3)
示例2
js
UPDATE tableName SET
display_order = CASE id
WHEN 1 THEN 3
WHEN 2 THEN 4
WHEN 3 THEN 5
END
WHERE id IN (1, 2, 3)
- 示例2 这句sql的意思是,更新display_order 字段,如果id=1 则display_order 的值为3,如果id=2 则 display_order 的值为4,如果id=3 则 display_order 的值为5。
- 需要注意这里的where部分代码,如果 display_order 是必填字段,且id不止1 2 3 有4,此时不加where id=4的记录中的display_order就会被更新空,由于display_order是必填此时就会报错:Column 'display_order ' cannot be null
- 还有where会提高sql执行的效率。确保sql语句仅执行需要修改的行数,这里只有3条数据进行更新,而where子句确保只有3行数据执行。