有关mysql数据库中group_concat函数实现字符串连接的方法,group_concat返回带有来自一个组的连接的非null值的字符串结果,具体用法详见文中例子。
mysql group_concat函数字符串连接方法
在
mysql数据库中,如何获取表达式组合的连接值,可以使用distinct删去重复值。
有时需要对多结果值进行排序,则应该使用order by子句。
若要按相反顺序排列,将 desc (递减) 关键词添加到要用order by 子句进行排序的列名称中。
默认顺序为升序;可使用asc将其明确指定。
separator 后面跟随应该被插入结果的值中间的字符串值。
默认为逗号 (‘,’)。通过指定separator ” ,可以删除所有分隔符。
有如下的表:
table A
————–
aid | computer
————–
1 | hp
————–
2 | sony
————–
table B
————–
aid | color
————–
1 | red
————–
1 | black
————–
2 | white
————–
需要得到如下结果:
——————————————
aid | computer | color
——————————————
1 | hp | red;black
——————————————
2 | sony | white
——————————————
这里提供二种解决方法:
法1:可以写一个函数来组合color值。
法2:使用group_concat(B.color separator ‘;’)
group_concat返回带有来自一个组的连接的非NULL值的字符串结果,例如:
select a.aid,a.computer,group_concat(b.color separator ‘;’)
frome ta a inner join tb b on a.aid=b.aid
group by a.aid,a.computer
有关group_concat的排序用法:
mysql> select student_name,
-> group_concat(distinct test_score
-> order by test_score desc separator ‘ ‘)
-> from student
-> group by student_name;