MySQL : 为 table 名称使用用户定义的变量

MySQL : using user-defined variables for a table name

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

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

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

如何使用其他语句生成相同的结果?

尝试使用此方法在不使用变量的情况下获得等效项。

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;

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

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