作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 mySQL 查询中有一个 IF 语句,并且运行良好:
GROUP_CONCAT(DISTINCT CONCAT("animal:",if(animal.name="monkey","fred",""),",color: ",animal.color) SEPARATOR " <br>") AS animals
我现在想添加一个 ELSEIF:
GROUP_CONCAT(DISTINCT CONCAT("animal:",if(animal.name="monkey","fred","")elseif(animal.name="cat","jane",""),",color: ",animal.color) SEPARATOR " <br>") AS animals
但是我收到一条错误消息:
Syntax error or access violation: 1064 You have an error in your SQL syntax
最佳答案
“if elseif endif”是一个控制语句,而 if() 是 MySQL 中的一个函数。虽然它们具有相同的名称,但它们是不同的东西。
如果有多个选项,可以使用 CASE 代替 IF。
SELECT
GROUP_CONCAT(DISTINCT CONCAT("animal:",
CASE animal.name
WHEN "monkey" THEN "fred"
WHEN "cat" THEN "jane"
ELSE "other"
END,
",color: ",animal.color) SEPARATOR " <br>"
) AS animals
FROM (
SELECT 'monkey' AS 'name', 'brown' AS 'color'
UNION
SELECT 'cat', 'white'
UNION
SELECT 'dog', 'black'
) AS animal
关于mysql - 如何在 GROUP_CONCAT 中使用 ELSE IF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48522167/
我是一名优秀的程序员,十分优秀!