数据库
首页 > 数据库> > mysql-组concat中的不同分隔符

mysql-组concat中的不同分隔符

作者:互联网

我有这样的SQL查询:

 REPLACE(
  GROUP_CONCAT( 
   IF( 
    (timediff(delta_ts,creation_ts) > '03:00:00')    
     && (priority='P5') ,bug_id,'')
     ),',,','' )
   AS exceeded_bugs
  from bugs
  ......

我得到的结果是:

exceeded_bugs: ,3743331,3743332,3743333

我需要其他定界符,因为Group concat的默认定界符为“,”.我需要使用空格或“ |”分隔错误或“-”符号.

我试着给:-

 REPLACE(
  GROUP_CONCAT( 
   IF( 
    (timediff(delta_ts,creation_ts) > '05:00:00')    
    && (priority='P6') ,bug_id,'')
    ) 
    ,SEPARATOR '-' ) 
   AS exceeded_bugs 
  from bugs
  .....

我收到错误:

您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在’SEPARATOR’-‘)附近使用,作为第1行的beyond_bugs

请使用不同的分隔符来帮助更正concat组的sql语法.

解决方法:

在SEPARATOR之前不要使用逗号

首先,您没有在group_concat函数中包括分隔符.

第二,你没有用替换功能做任何事情

Take a look here

编辑:

   REPLACE(GROUP_CONCAT( IF( (timediff(delta_ts,creation_ts) > '03:00:00') && (priority='P5') ,bug_id,'') SEPARATOR '-'),',,','' ) as exceeded_bugs

标签:replace,delimiter,group-concat,mysql
来源: https://codeday.me/bug/20191123/2065075.html