我想编写一条查询语句,以一次性更新SQL表中的多行数据。以下是我尝试过的代码,但它似乎不是正确的SQL语句,无法工作。是否有一种方法可以用一条查询语句完成这个操作?
$query = "UPDATE table_names
SET Name='Bob' WHERE ID=7
SET Name='Mike' WHERE ID=34"
我想编写一条查询语句,以一次性更新SQL表中的多行数据。以下是我尝试过的代码,但它似乎不是正确的SQL语句,无法工作。是否有一种方法可以用一条查询语句完成这个操作?
$query = "UPDATE table_names
SET Name='Bob' WHERE ID=7
SET Name='Mike' WHERE ID=34"
case
表达式:UPDATE table_name
SET name = CASE id WHEN 7 THEN 'Bob'
WHEN 34 THEN 'Mike'
END
WHERE id IN (7, 34)
我发现这个解决方案比使用"case when"更实用,而且你可以更新尽可能多的列。
UPDATE searches_group_library
SET compiled_query = new_val.compiledq
FROM (VALUES
(28, 'fakecompilation'),
(57, 'fakecompilation2')
) new_val (id, compiledq)
WHERE new_val.id = searches_group_library.id;
UPDATE table_names
SET Name='Bob' WHERE ID=7
UPDATE table_names
SET Name='Mike' WHERE ID=34
您可以在一条查询中完成此操作,但我认为这不是正确的方法:
INSERT table_name
KEYS (id, `name`)
VALUES (7, 'Bob'), (34, 'Mike')
ON DUPLICATE Key UPDATE
如果你真的在寻找一个查询,想要知道如何使用“on duplicate”语句,可以尝试类似这样的语法。
但是我建议使用两个查询来完成。
ID
值需要一个UPDATE
语句... - marc_sUPDATE
。 - Frederick Zhang