MySql函数:将VARCHAR转换为要在SELECT语句中使用的实际表名

时间:2011-11-23 15:07:12

标签: mysql sql function

如何在实际的SELECT Statement Ex:

中使用函数参数
CREATE FUNCTION GetDefaultLangText(tableName VARCHAR(50), fieldName VARCHAR(50)) 
RETURNS VARCHAR(200) DETERMINISTIC
BEGIN  
Select fieldName from tableName
END

这不起作用它告诉我tableName不存在,当然是真的,但我真正想要的是在变量tableName(以及fieldName)中插入实际值

3 个答案:

答案 0 :(得分:0)

MySQL中的变量必须以@为前缀,否则它们将被视为原始字段/表名,因此......

SELECT @fieldName FROM @tableName

但是,不允许使用此语法。字段名和表名不能以这种方式通过变量插入到查询中:MySQL Stored Procedure dynamic change name of table。因此,更改查询语句不会解决更大的问题。

答案 1 :(得分:0)

类似的内容已经发布了一段时间:use a variable for table name in mysql sproc

答案 2 :(得分:0)

您可以使用动态sql:

PREPARE stmt FROM @sqltext; 执行stmt USING @temptable; DEALLOCATE PREPARE stmt;

sqltext是一个可以包含查询的字符串