在使用 mysql 实现行转列的,要就是静态的,自己手写列,动态的太复杂容易出错,为了行转列写个存储过程好像没必要。
mysql 关键字中有这么几个函数
CONCAT_WS 合并列,可以是多个字段,中间指定一个分隔符
CONCAT_WS(separator,str1,str2,...)
GROUP_CONCAT 行转列,多行转成一列,指定需要转的字段
GROUP_CONCAT(expr)
CONCAT 在查询结果之前,或者之后添加一些字符
CONCAT(str1,str2,...)
然后我就写出了这样一个 sql
select CONCAT('{',GROUP_CONCAT(CONCAT_WS(":",BIANMA,`NAME`)),'}') as json from sys_department;
将查询结果集查询成了一个键值对形式的 json数据,在后台再用,Gson 将查询出来的字符串进行解析,我还是得到了行转列,查询之后的结果集。
野路子,大家需要的话可以试一下。