MySQL小技巧(追加中)

来源:互联网 发布:数据分析师等级考试 编辑:程序博客网 时间:2024/05/01 12:20

1.有些时候需要查询出特殊的一组数据,比如说TableA中的一个字段的值为a,b,c,而对应的a和b和c都是码表TableB中的一条数据,如下图所示,
TableA中的数据:
TableA
TableB中的数据:
TableB
此时想把TableA中的a,b,c显示为码表TableB中的对应的名称时,可以通过GROUP_CONCAT(expr)函数与FIND_IN_SET(str,strlist)函数相结合,前者是将分组函数通过','隔开显示在一行里,就是所谓的列转行,后者则是获取strlist中包含str的字段,简单来说,就是先将码表中的typeName分成一组,并用','隔开显示,如下图:
TableB
然后需要查出TableA中的数据,如下图:
这里写图片描述
最后再查询条件中用FIND_IN_SET(str,strlist)这个函数来匹配TableA中包含TableB中的typeId,结果如下图所示:
这里写图片描述

0 0