teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

sample

2018/03/29 04:28

投稿

yambejp
yambejp

スコア117923

answer CHANGED
@@ -7,4 +7,29 @@
7
7
 
8
8
  # 追記
9
9
 
10
- 上記、命題の意図と異なるようです。追加情報待ち
10
+ 上記、命題の意図と異なるようです。追加情報待ち
11
+
12
+ # 変換例
13
+ ```SQL
14
+ create table tbl(id int,val int);
15
+ ```
16
+ に対して
17
+ ```SQL
18
+ insert into tbl values(1,100,110,120),(2,200,210,220),(3,300,310,320);
19
+ ```
20
+ を突っ込んでエラーになるとき、こう変換するといけます
21
+ ```SQL
22
+ insert into tbl select id,val from (
23
+ select 1 as id,100,110 as val,120
24
+ union all select 2,200,210,220
25
+ union all select 3,300,310,320) as dummy;
26
+ ```
27
+ ※見やすいように改行してますが、実際にはしてもしなくてもいい
28
+
29
+ - 「values(」を「select id,val from (select 」に変換
30
+ - 「),(」を「 union all select 」に変換
31
+ - ケツに「 as dummy」(名前は何でもいい)を付ける;
32
+ - 1行目の取り出したいデータに名前をつける
33
+ 今回だと1列目のデータを「1」→「1 as id」、3列目のデータを「110」→「110 as val」
34
+ 取り込まないデータに関しては特に名前をつけなくてもよいし
35
+ 2行目以降のデータにも名前はいらない

1

調整

2018/03/29 04:28

投稿

yambejp
yambejp

スコア117923

answer CHANGED
@@ -3,4 +3,8 @@
3
3
  INSERT INTO `テーブル名`(`カラム名1`,`カラム名2`,`カラム名3`) VALUES (値1,値2,値3),(・・・)・・・
4
4
 
5
5
  ```
6
- としてください
6
+ としてください
7
+
8
+ # 追記
9
+
10
+ 上記、命題の意図と異なるようです。追加情報待ち