回答編集履歴

1

sample

2019/07/05 01:28

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -13,3 +13,47 @@
13
13
  ただしset型に予め上限数までダミーコードを与えておかないと
14
14
 
15
15
  データが保持されるたびに拡張するのは良い管理とは言えません
16
+
17
+ # sample
18
+
19
+
20
+
21
+ setを使ったMySQLの例
22
+
23
+ (あくまで参考、中間テーブルのほうが拡張性が高い)
24
+
25
+ ```SQL
26
+
27
+ create table tag(tagid int primary key,tagname varchar(20));
28
+
29
+ insert into tag values
30
+
31
+ (1,'ミステリー'),
32
+
33
+ (2,'自己啓発'),
34
+
35
+ (5,'子供向け'),
36
+
37
+ (6,'本屋大賞受賞');
38
+
39
+
40
+
41
+ create table book (bookid int primary key,name varchar(100),tag set("1","2","3","4","5","6","7","8","9","10")); /*setのダミーいっぱい必要*/
42
+
43
+ insert ignore into book values
44
+
45
+ (100,'RDS入門','1,5,5,6,100');
46
+
47
+ /*
48
+
49
+ 重複があって一つにまとまる
50
+
51
+ setにない値は切り捨てられる
52
+
53
+ */
54
+
55
+
56
+
57
+ select * from book as t1 inner join tag as t2 on FIND_IN_SET(t2.tagid,t1.tag);
58
+
59
+ ```