错误代码:1054。存储过程中“字段列表”中的未知列“abcdef”
Posted
技术标签:
【中文标题】错误代码:1054。存储过程中“字段列表”中的未知列“abcdef”【英文标题】:Error Code: 1054. Unknown column 'abcdef' in 'field list' in stored procedure 【发布时间】:2018-01-30 13:51:15 【问题描述】:我已经编写了以下存储过程。它工作得很好,并且给出了正确的结果。但是在添加了一些属性之后,它会显示错误。如果我将最后检索到的属性的名称更改为四个字母的单词,那么它可以正确运行。如果我将它作为存储过程运行,则会显示错误: "错误代码:1054。'字段列表'中的未知列'字段'"
如果作为独立语句运行,则会显示错误: “0 行受影响,1 个警告:1260 第 69 行被 GROUP_CONCAT() 剪切” "错误代码:1054。'字段列表'中的未知列'字段'"
CREATE DEFINER=`root`@`localhost` PROCEDURE `getCases`()
BEGIN
SET @sql = CONCAT('SELECT ', (SELECT GROUP_CONCAT(COLUMN_NAME) FROM
information_schema.columns WHERE table_schema = 'xyz_data_base'
AND table_name = 'table1'
AND column_name NOT IN ('col_one', 'col_last')),
', table2.Name from xyz_data_base.table1, xyz_data_base.table2
where table1.col_last = table2.Id');
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;
END
【问题讨论】:
见***.com/questions/2567000/… 非常感谢,它对我有用 【参考方案1】:在运行group_concat
之前,您必须更改系统参数group_concat_max_len
以防止结果被截断。
CREATE DEFINER=`root`@`localhost` PROCEDURE `getCases`()
BEGIN
SET @@session.group_concat_max_len = 10000;
SET @sql = CONCAT('SELECT ', (SELECT GROUP_CONCAT(COLUMN_NAME) FROM
information_schema.columns WHERE table_schema = 'xyz_data_base'
AND table_name = 'table1'
AND column_name NOT IN ('col_one', 'col_last')),
', table2.Name from xyz_data_base.table1, xyz_data_base.table2
where table1.col_last = table2.Id');
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;
END
【讨论】:
以上是关于错误代码:1054。存储过程中“字段列表”中的未知列“abcdef”的主要内容,如果未能解决你的问题,请参考以下文章
错误代码:1054。“字段列表”中的未知列“部门”0.000 秒
找不到列:1054“字段列表”中的未知列“0”-Laravel-我的代码中的任何地方都没有0列
SQLSTATE [42S22]:未找到列:1054 laravel 4 中“字段列表”中的未知列“id”