初始化:
CREATE TABLE `tag` (
`id` bigint(20) NOT NULL,
`tag` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Records of tag
-- ----------------------------
INSERT INTO `tag` VALUES ('1', 'a,b,c');
INSERT INTO `tag` VALUES ('2', 'a,c,d');
INSERT INTO `tag` VALUES ('3', 'a');
INSERT INTO `tag` VALUES ('4', 'e,g,z');
INSERT INTO `tag` VALUES ('5', 'a,y,z');
查询:
SELECT id, tag from tag , (select 'a' as needle union select 'c' union select 'e' union select 'f' union select 'g' ) as t
where id>0 and FIND_IN_SET(t.needle, tag.tag)>0 group by id having count(id)>=2;
返回
1 a,b,c
2 a,c,d
4 e,g,z
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…