mysql:使用用户定义的变量作为表名

hmmo2u0o  于 2021-06-24  发布在  Mysql
关注(0)|答案(2)|浏览(360)

我想在查询的from部分使用一个用户定义的变量,如下例所示:

SET @year = 2013,
    @ID3_1 = 107001001,
    @TableSource = "S_EXPO_RISQUES_METEO";

SELECT @ID3_1,
       @year,
       TS.ID_TER,
       TS.VALUE 
FROM @TableSource TS;

我怎样才能产生与其他语句相同的结果?

8ulbf1ek

8ulbf1ek1#

你不能那样做™. 查询中的列或表的命名不允许使用变量。解决办法?使用你的编程语言(php?java?)来创建查询字符串。
或者,使用mysql服务器端准备的语句,不要与php或java准备的语句混淆。读这个。https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html

xtfmy6hx

xtfmy6hx2#

试着这样做,不使用变量就可以得到一个等价的结果。

SELECT 107001001 ID3_1,
       2013 year,
       TS.ID_TER,
       TS.VALUE 
FROM S_EXPO_RISQUES_METEO TS;

或者用变量:

SET @year = 2013,
    @ID3_1 = 107001001;

SELECT @ID3_1,
       @year,
       TS.ID_TER,
       TS.VALUE 
FROM S_EXPO_RISQUES_METEO TS;

相关问题