错误代码: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 秒

MySQL 错误 #1054 -“字段列表”中的未知列

找不到列:1054“字段列表”中的未知列“0”-Laravel-我的代码中的任何地方都没有0列

SQLSTATE [42S22]:未找到列:1054 laravel 4 中“字段列表”中的未知列“id”

错误 #1054 - 尝试将 CSV 文件导入数据库时​​,字段列表中出现未知列

#1054 - '字段列表'中的未知列 'id' - phpMyAdmin