回答編集履歴

3

ちょうせい

2019/08/21 03:54

投稿

yambejp
yambejp

スコア114843

test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
  (1,'"3333"'),
58
58
 
59
- (1,'"AAAA"'),
59
+ (1,'"AAAA,BBBB,CCCC"'),
60
60
 
61
61
  (2,'"XXXX"');
62
62
 

2

ちょうせい

2019/08/21 03:54

投稿

yambejp
yambejp

スコア114843

test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  同じ様な機能に見えますが、効率的なデータの持ち方ではなくオルタナティブな処理にはなりません。
22
22
 
23
- 正規化をきちんと学習して、必要な場合はGROUP_CONCATを選択するのが最適な場合があることを
23
+ 正規化をきちんと学習して、GROUP_CONCATを選択するのが最適な場合があることを
24
24
 
25
25
  理解してください
26
26
 
@@ -38,7 +38,7 @@
38
38
 
39
39
  とありますが、GROUP_CONCAT(process_code separator ',')としても、
40
40
 
41
- デリミタが勝手に付加されることはないと思います。
41
+ エンクロージャが勝手に付加されることはないと思います。
42
42
 
43
43
  元データのそれぞれが「"」で囲まれているようなことはありませんか?
44
44
 

1

ついき

2019/08/21 03:47

投稿

yambejp
yambejp

スコア114843

test CHANGED
@@ -23,3 +23,51 @@
23
23
  正規化をきちんと学習して、必要な場合はGROUP_CONCATを選択するのが最適な場合があることを
24
24
 
25
25
  理解してください
26
+
27
+
28
+
29
+ # 追記
30
+
31
+
32
+
33
+ 1点気になったのですが
34
+
35
+ > "1111","2222","3333","AAA,BBB,CCC"みたいに出力される
36
+
37
+
38
+
39
+ とありますが、GROUP_CONCAT(process_code separator ',')としても、
40
+
41
+ デリミタが勝手に付加されることはないと思います。
42
+
43
+ 元データのそれぞれが「"」で囲まれているようなことはありませんか?
44
+
45
+
46
+
47
+ ```SQL
48
+
49
+ create table tbl(id int,val varchar(10));
50
+
51
+ insert into tbl values
52
+
53
+ (1,'"1111"'),
54
+
55
+ (1,'"2222"'),
56
+
57
+ (1,'"3333"'),
58
+
59
+ (1,'"AAAA"'),
60
+
61
+ (2,'"XXXX"');
62
+
63
+ select id,group_concat(val) as vals from tbl group by id;
64
+
65
+ ```
66
+
67
+ 対応策
68
+
69
+ ```SQL
70
+
71
+ select id,group_concat(replace(val,'"','')) as vals from tbl group by id;
72
+
73
+ ```