如何将SQL别名与变量一起使用

时间:2017-08-14 03:05:41

标签: mysql sql

我有以下代码:

set @a='city_name';
select place_names from table1 tbl1 inner join table2 tbl2 
   on tbl1.city_name = tbl2.city_name

在这里,我需要将变量@a与别名tbl1一起使用。类似于tbl1.@atbl2.@a

我该怎么做?

提前致谢。

1 个答案:

答案 0 :(得分:2)

语法(包括列名和其他标识符)必须在解析语句时修复。

将用户变量用作SQL语法的一部分的唯一方法是使用预准备语句,这样您就可以在解析之前将SQL语句构建为字符串。

SET @a='city_name';

SET @sql=CONCAT('select place_names from table1 tbl1 inner join table2 tbl2 
   on tbl1.', @a, ' = tbl2.', @a);

PREPARE stmt1 FROM @sql;
EXECUTE stmt;