gpt4 book ai didi

mysql - 如何在 MySQL 中为 CONCAT 使用别名?

转载 作者:行者123 更新时间:2023-11-29 04:36:33 25 4
gpt4 key购买 nike

我需要返回一个别名列 eventTitle,其内容可以根据另一列的值是否为 null 而变化。我还需要使用该别名的值连接一些其他值以返回另一个别名 title

我正在运行以下查询:

$sql = 'SELECT
CASE WHEN session.title IS NOT NULL
THEN session.title
ELSE course.title
END AS eventTitle,
CONCAT(eventTitle, "\n", session.city, ", ", session.state) AS title,
FROM session
LEFT JOIN course ON course.id = session.course_id';

我收到以下错误:

Unknown column 'eventTitle' in 'field list'

最佳答案

您不能在同一 SELECT 子句中引用列别名。将其放入子查询中。此外,您可以使用 IFNULL(或更标准的 COALESCE)代替 CASE

SELECT eventTitle, CONCAT(eventTitle, "\n", city, ", ", state) AS title
FROM (SELECT IFNULL(session.title, course.title) AS eventTitle, session.city, session.state
FROM session
LEFT JOIN course ON course.id = session.course_id) AS subquery

或者您可以在同一个查询中使用两次 IFNULL

SELECT IFNULL(session.title, course.title) AS eventTitle,
CONCAT(IFNULL(session.title, course.title), "\n", session.city, ", ", session.state) AS title
FROM session
LEFT JOIN course ON course.id = session.course_id

顺便说一句,我想你要么进行空检查,要么向后 LEFT JOIN。当您使用 LEFT JOIN 时,如果没有匹配项,您会在 second 表的列中得到 NULL。因此,NULL 的列将是 course.title,而不是 session.title

关于mysql - 如何在 MySQL 中为 CONCAT 使用别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40116114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com