字段列表 mysql 中的未知列“ ”并在调用 mysql 函数时传递动态 table 名称
Unknown column ' ' in the field list mysql and passing dynamic table name while calling mysql function
我正在尝试使用 mysql workbench 创建一个 mysql 存储过程函数,它将显示两个 table 的连接数据的结果基于一些状况。我也想将 table 名称作为参数传递。
我的代码在这里:
CREATE PROCEDURE `Get_Texts`(IN wrd longtext, IN dbname longtext,
IN splitdbname longtext,
IN lang longtext)
BEGIN
SET @sql_ = CONCAT('SELECT * FROM ',dbname,' as ifxcd
INNER JOIN
',splitdbname,' as ifxsd
ON
ifxsd.Crawl_id = ifxcd.Id where ifxsd.Language = ',lang,'
AND ifxsd.Word Like ',wrd,'%
order by ifxsd.Percentage desc
limit 100');
PREPARE statement_ FROM @sql_;
EXECUTE statement_ ;
END
调用函数:
call Get_Texts('acc', emp_info, split_emp_txt , 'English(en)');
调用函数后出现错误
'Unknown column 'emp_info' in the field list
我怎样才能克服这个问题并看到所需的输出?提前致谢。
在调用前设置一个 udv 并在 emp_iinfo 前添加一个 at 符号。 split_emp_text 相同
例如
set @emp_info = 'aaa';
set @split_emp_text = 'bbb'
call Get_Texts('acc', @emp_info, @split_emp_txt , 'English(en)');
问题出在我最终发现的查询语法中。这是正确的代码:
CREATE PROCEDURE `Get_Texts`(IN wrd longtext, IN dbname longtext,
IN splitdbname longtext, IN lang longtext)
BEGIN
SET @sql_ = CONCAT("SELECT * FROM `",dbname ,"` as ifxcd
INNER JOIN `",splitdbname,"` as ifxsd ON ifxcd.id = ifxsd.Crawl_id
where ifxsd.Language = '",lang,"' and ifxsd.Word Like '",wrd,"%'
ORDER BY ifxsd.percentage DESC
limit 100");
PREPARE statement_ FROM @sql_;
EXECUTE statement_ ;
DEALLOCATE PREPARE statement_;
END
调用过程:
call Get_Texts('acc', 'emp_info', 'split_emp_txt' , 'English');
我正在尝试使用 mysql workbench 创建一个 mysql 存储过程函数,它将显示两个 table 的连接数据的结果基于一些状况。我也想将 table 名称作为参数传递。
我的代码在这里:
CREATE PROCEDURE `Get_Texts`(IN wrd longtext, IN dbname longtext,
IN splitdbname longtext,
IN lang longtext)
BEGIN
SET @sql_ = CONCAT('SELECT * FROM ',dbname,' as ifxcd
INNER JOIN
',splitdbname,' as ifxsd
ON
ifxsd.Crawl_id = ifxcd.Id where ifxsd.Language = ',lang,'
AND ifxsd.Word Like ',wrd,'%
order by ifxsd.Percentage desc
limit 100');
PREPARE statement_ FROM @sql_;
EXECUTE statement_ ;
END
调用函数:
call Get_Texts('acc', emp_info, split_emp_txt , 'English(en)');
调用函数后出现错误
'Unknown column 'emp_info' in the field list
我怎样才能克服这个问题并看到所需的输出?提前致谢。
在调用前设置一个 udv 并在 emp_iinfo 前添加一个 at 符号。 split_emp_text 相同 例如
set @emp_info = 'aaa';
set @split_emp_text = 'bbb'
call Get_Texts('acc', @emp_info, @split_emp_txt , 'English(en)');
问题出在我最终发现的查询语法中。这是正确的代码:
CREATE PROCEDURE `Get_Texts`(IN wrd longtext, IN dbname longtext,
IN splitdbname longtext, IN lang longtext)
BEGIN
SET @sql_ = CONCAT("SELECT * FROM `",dbname ,"` as ifxcd
INNER JOIN `",splitdbname,"` as ifxsd ON ifxcd.id = ifxsd.Crawl_id
where ifxsd.Language = '",lang,"' and ifxsd.Word Like '",wrd,"%'
ORDER BY ifxsd.percentage DESC
limit 100");
PREPARE statement_ FROM @sql_;
EXECUTE statement_ ;
DEALLOCATE PREPARE statement_;
END
调用过程:
call Get_Texts('acc', 'emp_info', 'split_emp_txt' , 'English');