MySQL之FIND_IN_SET函数

  1. 场景:
    标签表(t_tag):
id name
1 文学
2 科技

文章表(t_artic),包含tags字段存储标签的id列表,以逗号分隔:

id title tags
1 文学和科技的联想 1,2
2 从科技到文学的思考 2,1
  1. 现在需要SQL查询文章列表,每个文章级联其下的多个标签,由于不想建关系表,又想用一条SQL搞定查询,FIND_IN_SET(ele, list)函数能满足要求,其中参数ele是匹配项,list是varchar表示的集合,两个参数类型必须匹配
SELECT 
      t.id,
      t.title,
      g.name
FROM
      t_artic AS t,
      t_tag AS g 
WHERE
      FIND_IN_SET(g.id, t.tags);
  1. Java代码中文章的VO对象定义标签的集合字段,MyBatis ResultMap配置的Collection属性即可。
posted @ 2020-06-05 10:42  JaxYoun  阅读(173)  评论(0编辑  收藏  举报