【问题标题】:MySQL Error Code: 1054. Unknown column 'fieldname' in 'field list'MySQL 错误代码:1054。“字段列表”中的未知列“字段名”
【发布时间】:2017-06-23 13:12:20
【问题描述】:

我的问题很可能很容易解决,但我还没有找到重复的问题。我有一个简单的表,其中包含零键和任何类型的零约束,但是如果不从表结构中复制和粘贴名称,我就无法选择列。

下面的图片显示我运行了两个查询,并且两者的列名相同。第一次尝试键入列名,第二次尝试从下面信息面板的表结构中复制名称。

我感觉这可能是一个整理问题,但一点也不知道如何解决它。如果需要,我可以提供任何其他信息。提前致谢。

【问题讨论】:

  • 我的猜测是你在创建表格时不小心在列名中使用了一个不可见的隐藏字符。
  • 我会用确切的字符串“AuthorizationID”更改列的名称,可能正如@juergend 提到的那样,由于名称不同,所以有一个不可见的字符会破坏查询。
  • 这似乎有效,所有列名最初都是在 csv 导入上创建的,所以肯定有一些不可见的字符。感谢帮助,我不知道为什么我没有想到重命名字段名称。
  • 向我们展示你从中得到了什么;我们会帮你破译:select HEX(column_name) from information_schema.columns where table_name = 'lki_authorization'

标签: mysql sql mysql-workbench collation mysql-error-1054


【解决方案1】:

最可能的原因是列名中出现了看不见的字符。您可以使用information_schema 访问列名。最常见的原因是尾随空格,但如果有常规空格,那么这两个版本都不起作用。

你可以试试这个来获取更多信息:

select concat('|', c.column_name, '|'), char_length(c.column_name)
from information_schema.columns c
where c.table_name = 'lki_authorization' 

(注意:您可能还需要table_schema 来识别表格,但我猜这不是必需的。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-09
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多