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
我想在查询的 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