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

MySQL使用GROUP_CONCAT拼接多字段触发SQL语法错误如何解决?

问题原因

报错和字符转义无关,是SQL语法使用错误:

  • MySQL的CASE表达式的THEN后仅支持返回单个值,你直接并列写r.formtime, '-', r.book_hours属于多表达式并列,不符合语法要求
  • 你需要先将多个要拼接的内容用CONCAT()函数合并为单个字符串,再放到THEN后即可

修正后的代码

$aColumns = array( "t.tablename", "r.book_hours", 
    "GROUP_CONCAT(CASE WHEN r.reserveday = CURDATE() THEN CONCAT(r.formtime, '-', r.book_hours) ELSE NULL END ORDER BY r.formtime ASC) AS oldBookTime");

额外说明

如果你需要自定义GROUP_CONCAT不同条目之间的分隔符,可以在ORDER BY子句后加SEPARATOR '你想要的分隔符',默认分隔符是英文逗号。


内容的提问来源于stack exchange,提问作者Eng Keat Ang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:09:05