MySQL如何实现多行查询结果到一行
使用功能:group_concat(),当一个ID对应多个名字,这原本是一个多行数据,这个名字被合并成一行。完全文法:
group_concat(expr)
这个函数用一个组的非空值返回一个字符串结果。它的完整语法如下所示:
group_concat({ } {明显表达,表达…}
{ }的{ unsigned_integer col_name expr | |秩序
{和} { col_name ASC |,…
{机})str_val
MySQL >选择student_name,
-> group_concat(test_score)
从学生
组-> student_name;
或:
MySQL >选择student_name,
(不同group_concat test_score ->
为了test_score DESC分离器- >)
从学生
组-> student_name;
在MySQL,你可以得到表达式的组合连接的价值。你可以使用不同的删除重复值。如果你想多结果进行排序,你应该使用的条款顺序。如果你想在相反的顺序,添加描述(递减)的列名称,你想用ORDERBY子句排序关键字。默认为升序;您可以明确地指定它与asc.separator如下一个字符串值,在价值中应插入结果。默认是逗号(',')。通过指定分隔符,您可以删除所有分离器。
与group_concat_max_len系统变量,你可以设置允许的最大长度。此操作的语法如下,val是一个无符号整数:
设置会话| {全球} group_concat_max_len = val;