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

标签 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

我该怎么做?

提前致谢。

最佳答案

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

将用户变量用作 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/

相关文章:

mysql - 如何在sql中获取表名和一列?

php - 如何检索 MySQL 服务器时区,然后在 php 中进行转换

java - 解决Java Oracle并发更新/删除语句

mysql - 查找重复项的查询

sql - Postgres - 如何在插入时自动调用 ST_SetSRID(ST_MakePoint(lng, lat), 4326)?

php - 调用 native 函数时参数计数不正确 'radians'

java - 获取MySQL安装路径

mysql - 应该使用哪种锁定方案和隔离级别来生成序列号?

sql - 带外键引用行数的多表选择

sql - 我可以从插入选择中返回未包含在插入中的字段吗?