You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GROUP_CONCAT()出现1064错误,是否为MariaDB解析器Bug?

GROUP_CONCAT后加空格触发MariaDB语法错误的原因及解决办法

这不是MariaDB解析器的Bug,而是它对聚合函数的语法规则要求。

在MariaDB(以及MySQL)中,聚合函数的函数名与左括号之间不允许存在空格,但普通函数(比如date_format)则允许这种写法,这是两类函数的语法差异导致的。

对比你提供的两段SQL:

  • 可正常执行的语句:
select
    date_format (max(modified), '%d.%m.%Y') `Entered`,
    group_concat(PHYSICIAN separator ' / ') Doktor
from
    invoice_physician
group by
    INVOICENR;

这里group_concat与左括号紧密相连,符合聚合函数的语法规范,因此能正常执行。

  • 触发#1064错误的语句:
select
    date_format (max(modified), '%d.%m.%Y') `Entered`,
    group_concat (PHYSICIAN separator ' / ') Doktor
from
    invoice_physician
group by
    INVOICENR;

此处group_concat和左括号之间多了空格,MariaDB解析器会将group_concat识别为普通标识符,而非聚合函数,进而触发语法错误。

解决办法:

  • 调整SQL美化工具的设置,让它对聚合函数(如GROUP_CONCAT、MAX、SUM等)保留函数名与左括号无空格的格式;
  • 如果工具不支持自定义规则,手动删除聚合函数名后的空格;
  • 编写SQL时刻意保持聚合函数名与左括号紧密相连。

内容的提问来源于stack exchange,提问作者theking2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 20:41:06