在存储过程或函数中,查询某一列的的结果,把结果集按照一定的规律拼成字符串,要怎么弄呢?只能用游标吗

解决方案 »

  1.   

    group_concat函数select group_concat(a)
    from tb
      

  2.   

    GROUP_CONCAT([DISTINCT] expr [,expr ...]             [ORDER BY {unsigned_integer | col_name | expr}                 [ASC | DESC] [,col_name ...]]             [SEPARATOR str_val])mysql> SELECT student_name,    ->     GROUP_CONCAT(test_score)    ->     FROM student    ->     GROUP BY student_name;
      

  3.   

    方法有效,但是有个问题,貌似得到的字符串是有长度限制的?,至少在client工具里打印的结果是这样
      

  4.   

    可以把限制取消
    set global group_concat_max_len=100000;
      

  5.   

    如果非常长,则建议使用程序来实现,而不是用SQL语句。