如何在实际的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)中插入实际值
答案 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是一个可以包含查询的字符串