【发布时间】:2018-07-27 04:38:33
【问题描述】:
我想处理嵌套案例:
SELECT *,
GROUP_CONCAT(DISTINCT CONCAT(
CASE
WHEN data.name NOT "field" THEN
CASE
WHEN data.category = "A" THEN "A"
WHEN data.category = "B" THEN "B"
ELSE "C"
END,data.name
END
)ORDER BY FIND_IN_SET(data.category,"B,C,A") ASC, data.name ASC SEPARATOR " <br>") AS result
FROM data;');
但我收到一条错误消息:
致命错误:未捕获的 PDOException:SQLSTATE[42000]:语法错误或 访问冲突:1064 您的 SQL 语法有错误;检查 与您的 MySQL 服务器版本相对应的手册 在第 11 行的“data.name END”附近使用的语法
【问题讨论】:
-
pdo与问题有何关联? -
删除嵌套的大小写,你会得到
CASE WHEN data.name NOT "field" THEN [...] , data.name END。这不是有效的 SQL。我认为您需要在第二个END之后移动data.name。 -
@waka
A或B或C仅应在data.name不是field时出现 -
@Jarla 在下面检查我的答案,您没有在嵌套案例中添加括号,并且您将 data.name 放在嵌套案例中。检查下面的答案。
-
Not field is invalid try
标签: mysql if-statement nested group-concat