2

我有多行需要更新和插入客户姓名。我怎样才能在一个查询中做到这一点,而不是一次又一次地使用不同的名称运行类似下面的查询?

UPDATE orders
SET cust_name = 'Sue'
WHERE p_id = 6
4

2 回答 2

3

你可以使用类似的东西

    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)

有关更多信息,请检查使用不同值和单个 SQL 查询更新多行

于 2012-05-31T20:37:53.440 回答
0

你一般不能。至少,MySQL、DB2、SQL Server 和 PostgreSQL 不支持不同 WHERE 子句适用于不同 SET 子句的查询。

你也不需要。您通常可以做的是使用带有变量占位符的准备好的语句,您可以使用参数元组列表执行该语句。根据语言、数据库适配器和数据库的不同,这可能会以“批处理”模式执行,这非常有效。

更高的精度需要有关您正在使用的语言、数据库和数据库适配器的更多信息。

于 2012-05-31T20:43:13.023 回答