我有一个不起作用的查询,因为子查询FROM
子句不理解CONCAT()
:
SELECT *
FROM `events` e
WHERE EXISTS (SELECT *
FROM CONCAT('prefix_', e.`event_id`) registrations
WHERE registrations.`attendee` = 123456
)
有没有办法在单一陈述中完成这项工作?
我收到的错误消息是:
#1064 - 您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以便在'('前缀_',e.event_id)注册附近使用正确的语法
答案 0 :(得分:2)
您是否正在尝试动态提出表名?我不认为这是可能的...因为在SQL能够被评估和执行之前,是否需要解析FROM子句表名?
答案 1 :(得分:0)
SELECT * FROM (SELECT *,
CONCAT('prefix_', `event_id`) as prefix FROM `events`
WHERE events.attendee = 123456
);