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

时间:2018-04-10 10:09:02

标签: mysql variables toad user-defined

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

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

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

如何使用其他语句生成等效结果?

2 个答案:

答案 0 :(得分:0)

尝试此操作以获得不使用变量的等效项。

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;

答案 1 :(得分:0)

你不能那样做。在查询中命名列或表时不允许使用变量。解决方法?使用您的编程语言(php?Java?)来创建您的查询字符串。

或者,使用MySQL服务器端预处理语句,不要与php或Java预处理语句混淆。读这个。 https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html