这个问题有点关于“最佳实践”,但也是对潜在问题的搜索。我希望能够在不运行多个查询且不使用超级复杂查询的情况下对多个字段运行更新并分配不同的值。所以,我所做的是创建了一个带有主键和“名称”列作为唯一键的表。
现在,当我想用不同的值更新多个列时,我可以运行如下查询:
INSERT INTO my_table (name, description) VALUES ('name', 'mydescription'), ('name2', 'description2') ON DUPLICATE KEY UPDATE description = VALUES(description)
这是一个坏主意吗?有一个更好的方法吗?标准警察会来逮捕我吗?
编辑:我确实注意到了一个潜在的问题,即竞争条件。如果一个用户在另一个用户正在编辑它时删除了一行并保存了信息,则编辑将重新创建该行。(这可以用作功能或错误。)