-1
我有2個更新查詢,相同的表,但不同的行和值。 由於它的同一張表,進行2次查詢是一種不專業的方式。mySQL - 如何在一個查詢中進行多更新?
UPDATE members SET age="18" WHERE nick = "John"
UPDATE members SET height="180" WHERE nick = "Stuart"
有沒有更好的(1查詢)方法呢?由於
我有2個更新查詢,相同的表,但不同的行和值。 由於它的同一張表,進行2次查詢是一種不專業的方式。mySQL - 如何在一個查詢中進行多更新?
UPDATE members SET age="18" WHERE nick = "John"
UPDATE members SET height="180" WHERE nick = "Stuart"
有沒有更好的(1查詢)方法呢?由於
只需使用權where
條款:
UPDATE members
SET age = 18
WHERE nick IN ('John', 'Stuart')
我猜測age
是一個整數。我還應該指出,在數據庫中存儲「年齡」是非常罕見的 - 因爲這是一個壞主意。每一天,人們的年齡都在變化。
編輯:
UPDATE members
SET age = (CASE WHEN nick = 'John' THEN 18 ELSE age END),
height = (CASE WHEN nick = 'Stuart' THEN 180 ELSE height END)
WHERE nick IN ('John', 'Stuart')
我真正讀懂了問題,只更新年齡。爲此,你可以使用一個case語句:
起初我想到了這個,但是他似乎想要改變john的年齡和stuart的高度 – e4c5
如果我錯了,請糾正我,但那隻會更新年齡?也沒有它的年齡,我只是簡化了這個問題,實際上他們是正常的文本值。 – user3304007
@ user3304007。 。 。你是對的。我真的讀了原始問題,並認爲兩個問題都在更新年齡,但這似乎是我的誤讀。 –