select GROUP_CONCAT(p_str SEPARATOR ';')
  from (select 'aa' as p_str
          from dual
        union all
        select 'bb' as p_str
          from dual) mt;在这里把后面的分号替换成换行符 char(13),直接替换是报错的,有其它办法没?

解决方案 »

  1.   

    试试这个,我这里没有MYSQL的环境,不知道MySQL的HEX(13)是不是换行符。您可以自己试试看。
    HEX()函数:返回十六进制值的字符串表示形式。注意:并不是十进制转化为十六进制数,而是转化为字符串
    UNHEX() 函数: 每对十六进制数字转化为一个字符。select GROUP_CONCAT(p_str SEPARATOR HEX(13))
       from (select 'aa' as p_str
               from dual
             union all
             select 'bb' as p_str
               from dual) mt;
      

  2.   

    和我用char(13)报的错一样,但是类似的语法放在oracle用listagg可以(chr(13))You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'HEX(13))
         from (select 'aa' as p_str
                 from dual
               union al' at line 1
      

  3.   

    GROUP_CONCAT(p_str SEPARATOR '\n')