MySQLUPDATE
ステートメントは、括弧付きリストでは機能しません。たとえば、次は構文エラーです。
UPDATE zork SET (A,B) = ('foo','bar') WHERE C = 'baz';
ただし、INSERT
andREPLACE
ステートメントでは括弧付きリストを使用できます。UPDATE
ステートメント内の列名と値のリストをグループ化する方法はありますか?
MySQLUPDATE
ステートメントは、括弧付きリストでは機能しません。たとえば、次は構文エラーです。
UPDATE zork SET (A,B) = ('foo','bar') WHERE C = 'baz';
ただし、INSERT
andREPLACE
ステートメントでは括弧付きリストを使用できます。UPDATE
ステートメント内の列名と値のリストをグループ化する方法はありますか?
行コンストラクターの構文は、機能する場所と機能しない場所があります。
=
、<
、>
、 、 、<=
と>=
比較して機能し<>
ます。
WHERE (a,b) = ('foo','bar')
また
WHERE (a,b) >= ('foo','bar')
また
WHERE (a,b,c) <> ('foo','bar',7)
ただし、次のような他の構造では機能しません。BETWEEN ... AND
UPDATE ... SET
WHERE (a,b) BETWEEN ('foo','bar') AND ('foo','bar')
また
UPDATE tableX SET (a,b) = ('foo','bar')
その理由については、MySQL 開発者だけが答えられると思います。おそらく、バグ/機能の提案を送信できます。
あなたの更新については、次の方法以外に選択肢はないと思います。
UPDATE tableX
SET a = 'foo',
b = 'bar'
WHERE C = 'baz';
主キー セットがあり、そのキーを更新する必要がない場合は、replace コマンドを使用できます。
REPLACE INTO zork VALUES ('foo','bar','baz')
本当に UPDATE 構文を使用する必要がある場合は、運が悪いです。