在FROM子句中使用CONCAT

时间:2014-12-31 10:59:49

标签: php mysql mysqli

我有一个不起作用的查询,因为子查询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)注册附近使用正确的语法

2 个答案:

答案 0 :(得分:2)

您是否正在尝试动态提出表名?我不认为这是可能的...因为在SQL能够被评估和执行之前,是否需要解析FROM子句表名?

答案 1 :(得分:0)

SELECT * FROM (SELECT *, 
          CONCAT('prefix_', `event_id`) as prefix FROM  `events`  
          WHERE events.attendee = 123456
         );