這基本上是Update multiple rows with one query?的擴展。我希望能夠一次更新多行的多列,但不一定要更新每行的每一列。使用不同柱子的不同可選值更新多行
下面是一個例子命令我希望能夠執行:
UPDATE person
SET name = CASE id
WHEN 1 THEN 'Jim'
WHEN 3 THEN 'Precious'
END,
sex = CASE id
WHEN 1 THEN 'female'
WHEN 2 THEN 'male'
END
WHERE id IN (1,2,3)
然而,這會返回一個錯誤,告訴我列「名稱」不能爲空。因此,在我看來,指定WHERE id IN (x,y,z)
意味着所有選定的列都必須更新,即使我們正在逐個案例地指出要放置哪些值。
有沒有辦法繞過這個限制,就像是一個特殊的符號來表示「保留原始值」?如果沒有,是否有其他方法可以在一個查詢中更新多行的選擇列,任意列?
謝謝工作就像一個魅力。 – dimo414 2010-07-16 00:15:44