我有多行需要更新和插入客户姓名。我怎样才能在一个查询中做到这一点,而不是一次又一次地使用不同的名称运行类似下面的查询?
UPDATE orders
SET cust_name = 'Sue'
WHERE p_id = 6
我有多行需要更新和插入客户姓名。我怎样才能在一个查询中做到这一点,而不是一次又一次地使用不同的名称运行类似下面的查询?
UPDATE orders
SET cust_name = 'Sue'
WHERE p_id = 6
你可以使用类似的东西
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 查询更新多行
你一般不能。至少,MySQL、DB2、SQL Server 和 PostgreSQL 不支持不同 WHERE 子句适用于不同 SET 子句的查询。
你也不需要。您通常可以做的是使用带有变量占位符的准备好的语句,您可以使用参数元组列表执行该语句。根据语言、数据库适配器和数据库的不同,这可能会以“批处理”模式执行,这非常有效。
更高的精度需要有关您正在使用的语言、数据库和数据库适配器的更多信息。