我有表Value_table
和列value
我需要将value
列更新为'嗨'如果任何value
列存在' bye'
我写了查询
UPDATE Value_table
SET value = 'Hi'
WHERE value_id
IN
(
SELECT
value_id
FROM
Value_table
WHERE
value = 'bye'
)
它运行正常。现在,因为我在子查询中使用相同的表,我们可以采用任何其他方式使这个语句更有效。?
答案 0 :(得分:2)
如果value_id
是唯一的,您可以
UPDATE Value_table
SET value = 'Hi'
WHERE value = 'bye'
答案 1 :(得分:1)
我猜如果表格非常大,EXISTS可能表现更好。
UPDATE vt
SET vt.value = 'Hi'
FROM Value_table vt
WHERE EXISTS ( SELECT 1
FROM Value_table vt2
WHERE vt.value_id = vt2.value_id AND vt2.value = 'bye')
if any value column exists with 'bye'
如果这意味着ID不必匹配,则可以删除vt.value_id = vt2.value_id
部分