質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

1861閲覧

MySQLでUPDATE文のカラム名を分岐させる方法

avantgarden

総合スコア121

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2020/02/19 08:49

単純な質問なのですが、

UPDATE tbl_test SET col_name1="名前"

というUPDATE文で、カラム名を分岐させることはできないのでしょうか。

たとえば

UPDATE tbl_test SET CASE tbl_val WHEN 1 THEN col_name1 WHEN 2 THEN col_name2 WHEN 3 THEN col_name3 WHEN 4 THEN col_name4 END ="名前"

という感じにしたいのですが、実行するとsyntaxエラーとなります。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoorwm

2020/02/19 08:54

そういう要求が出てくる場合は、恐らくテーブルの設計から見直した方が良いかと思いますが、とりあえずCREATE TABLE文を添付してみてください。
avantgarden

2020/02/19 08:57

途中の機能改修で追加したカラムに一気に値をセットしたいということがあり、上記の方法でやってもうまくいかないので、勉強がてらここでお聞きした、という次第です。経緯を記載しておらずすみません。
avantgarden

2020/02/19 09:00

SETする値を分岐できるのは知っているのですが、同様にカラムの方の分岐もできるのかと思ったのですが、できなかったので質問させていただきました。 仰る通り、カラム名を分岐させること自体は通常ではあり得ないとは思います。
guest

回答1

0

ベストアンサー

UPDATEで更新する対象のカラムを分岐処理させることはできません。
なので、条件に一致しない時は、更新はするけど結果的に内容に変更が無いようにします。

SQL

1UPDATE tbl_test SET 2 col_name1=case tbl_val when 1 then "名前" else col_name1 end 3, col_name2=case tbl_val when 2 then "名前" else col_name2 end 4, col_name3=case tbl_val when 3 then "名前" else col_name3 end 5, col_name4=case tbl_val when 4 then "名前" else col_name4 end

投稿2020/02/19 09:03

sazi

総合スコア25206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

avantgarden

2020/02/19 09:08

カラムは分岐できないのですね。 分岐する方法が調べても出てこなかったので、できないことが分かってすっきりしました。 別案で同等のことができますね。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問