说我有一个表叫例子如下:
[ABC] | [DEF]
--1 --- | -qwerty-
--2 --- | -asdf ---
我所想要做的就是更新一个SQL查询(仅使用一个UPDATE)两列。
UPDATE example SET def = 'foo' where abc = '1'
UPDATE example SET def = 'bar' where abc = '2'
以上是我想什么来实现,但在SQL中的一列(使用MySQL)。 我知道你可以做到这一点像UPDATE example SET def 'foo', SET def = 'bar'
,但我不知道你怎么能有两个不同,语句做到这一点。
您可以执行一个UPDATE
配合使用的IF
( 其中MySQL支持 ),或通过使用CASE
,使其更加RDBMS友好。
UPDATE example
SET def = IF(abc = 1, 'foo', 'bar')
WHERE abc IN (1, 2) -- reason to make it more faster, doesn't go on all records
要么
UPDATE example
SET def = CASE WHEN abc = 1 THEN 'foo' ELSE 'bar' END
WHERE abc IN (1, 2) -- reason to make it more faster, doesn't go on all records
像这样:
UPDATE example SET def =
CASE abc
WHEN '1' THEN 'foo'
WHEN '2' THEN 'bar'
END
这使您可以输入超过2例。