回答編集履歴

1

sample

2018/03/15 03:17

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -7,3 +7,53 @@
7
7
  構成上どうしても変更ができないなら、そうとうこねくり回せば
8
8
 
9
9
  不可能ではないと思いますが、効率がわるくスピードは期待できません
10
+
11
+
12
+
13
+ # sample
14
+
15
+
16
+
17
+ **おすすめしないのは変わりません**が、一応サンプルだけ付けておきます
18
+
19
+ - 元データ
20
+
21
+ ```SQL
22
+
23
+ create table number(id int unique,number varchar(30));
24
+
25
+ insert into number values(1,'1 2 3'),(2,'3 4');
26
+
27
+ create table title(id int unique,number varchar(10),title varchar(10));
28
+
29
+ insert into title values(1,'1','A'),(2,'2','B'),(3,'3','C'),(4,'4','D'),(5,'6','E');
30
+
31
+ ```
32
+
33
+
34
+
35
+ - とりあえず抽出
36
+
37
+ ```SQL
38
+
39
+ select t1.id,t2.title from number as t1
40
+
41
+ left join title as t2 on t1.number regexp concat('(^| )',t2.number,'( |$)')
42
+
43
+ ```
44
+
45
+
46
+
47
+ - タイトルもスペース区切りで1カラムにまとめる
48
+
49
+ ```SQL
50
+
51
+ select t1.id,group_concat(t2.title order by t2.number separator ' ') as title
52
+
53
+ from number as t1
54
+
55
+ left join title as t2 on t1.number regexp concat('(^| )',t2.number,'( |$)')
56
+
57
+ group by id
58
+
59
+ ```