• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLでできますか?)

SQLでできますか?

このQ&Aのポイント
  • SQLで特定の条件を満たす行を抽出し、その値を指定したクエリに利用する方法について教えてください。
  • 例えば、テーブルhogeのpiyoカラムの値がappleで始まる行を探し、そのidの値をBとしたいです。
  • どうか助けていただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

INSERT INTO test(A,B,C) SELECT id, "Bvalue", "Cvalue" FROM hoge WHERE piyo LIKE 'apple%' これでいけると思います。

henguri22
質問者

お礼

ありがとうございました。助かりました。 確かに、よく考えると、条件の対象がidだけなら、その構文が使えますね。気づきませんでした。

その他の回答 (2)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

サブクエリをUNIONにすればどうでしょう。 INSERT INTO test(A) VALUES ( SELECT id FROM hoge WHERE piyo LIKE 'apple%' UNION SELECT "Bvalue" UNION SELECT "Cvalue" )

henguri22
質問者

補足

実例を出させていただきます。どこが間違っているのでしょうか? INSERT INTO aros_acos (`aro_id`, `aco_id`, `_create`, `_read`, `_update`, `_delete`) VALUES ( SELECT id FROM acos WHERE alias LIKE 'admin_%' , UNION SELECT 1 , UNION SELECT 1 , UNION SELECT 1 , UNION SELECT 1 , UNION SELECT 1 ) MySQLからのメッセージ: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id FROM acos WHERE alias LIKE 'admin_%' , UNION SELECT 1 , UNION SELECT' at line 3

回答No.1

INSERT INTO test(A) SELECT id FROM hoge WHERE piyo LIKE 'apple%' どうでしょう?

henguri22
質問者

補足

できました、が、実は INSERT INTO test(A, B, C) VALUES (SELECT id FROM hoge WHERE piyo LIKE 'apple%', "Bvalue", "Cvalue") 回答をもらえば上記SQLのように出来ると思い込んでいました。 このように、本当は一部の値だけを動的に取得してINSERTしたかったのです。 どうやら考えが甘かったようなのですが、上記のように、BとCの値のみ固定してから行う方法はありますでしょうか? ご教授願います

関連するQ&A