3

次のようなexampleというテーブルがあるとします。

[abc] | [def]

--1--- | -qwerty-

--2--- | -asdf ---

私がやりたいのは、1つのSQLクエリで両方の列を更新することです(1つのUPDATEのみを使用)。

UPDATE example SET def = 'foo' where abc = '1'

UPDATE example SET def = 'bar' where abc = '2'

上記は私が達成したいことですが、SQLの1行で(MySQLを使用して)。私はあなたがこのようにこれを行うことができることを知っていますがUPDATE example SET def 'foo', SET def = 'bar'、2つの異なるwhereステートメントでこれをどのように行うことができるかわかりません。

4

2 に答える 2

5

mysqlがサポートする)を使用するか、を使用UPDATEしてRDBMSをより使いやすくすることで実行できます。IFCASE

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
于 2013-03-19T15:27:00.107 に答える
0

そのようです:

UPDATE example SET def = 
    CASE abc 
        WHEN '1' THEN 'foo' 
        WHEN '2' THEN 'bar'
    END

これにより、2つ以上のケースを入力できます。

于 2013-03-19T15:29:05.950 に答える