我有以下代码:
set @a='city_name';
select place_names from table1 tbl1 inner join table2 tbl2
on tbl1.city_name = tbl2.city_name
这里我需要使用变量@a
和别名tbl1
。类似于 tbl1.@a
和 tbl2.@a
。
我该怎么做?
提前致谢。
最佳答案
语法(包括列名和其他标识符)必须在解析语句时固定。
将用户变量用作 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;
关于mysql - 如何将 SQL 别名与变量一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45666891/