-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。 。 。你是对的。我真的读了原始问题,并认为两个问题都在更新年龄,但这似乎是我的误读。 –