【问题标题】:unknown column in field list, column is really there字段列表中的未知列,列确实存在
【发布时间】:2014-03-19 10:03:09
【问题描述】:

我在 MySQL 数据库选择查询中的字段列表错误中收到未知列,即使该列实际上存在。我什至通过右键单击 MySQL 命令行客户端并使用 Find... 工具搜索正确的拼写来检查拼写,该拼写在由描述表产生的列列表和选择中的列名中都出现了匹配询问。我怎样才能解决这个问题?

这是 MySQL 命令行客户端的屏幕截图,显示错误重复,即使我测试了正确的拼写 UMLSCUI 和不正确的拼写 UMLSCU1:

这里是表格定义的截图:

【问题讨论】:

  • 是什么让您认为umlscui 是表格中的一列?它似乎是atn 的值。请显示rxnsat中的列。

标签: mysql sql


【解决方案1】:

您必须检查列的名称 atn 是否在您的数据库中包含空格。

如果该列名之前或之后有空格,则它将是未知列。

编辑:

如何检查空格?

将光标放在要编辑的列名中,然后将光标向右移动,看看是否有空格,或者它会停在左侧相同的列末尾。

EDIT2:

你应该这样做

  select * from rxnsat
  where ATN = 'RXN_STRENGTH' or ATN = 'UMLSCUI'; --//as UMLSCUI is a value in atn column

【讨论】:

  • 我刚刚添加了表格定义的屏幕截图。字段名称似乎没有空格。如何确定?
  • 只有在列名中有空格才没有错。
  • 谢谢。我昨天只是没有清楚地看到问题。第二个 where 参数用于不同字段的 CUI 值。但是您的建议帮助我了解了该去哪里寻找。
【解决方案2】:

根据屏幕截图中的示例查询,您可能会误解您的表格。我建议您仔细检查您的表格,并确保您认为的内容确实存在。在您的表定义中没有列为umlscui 的列。

【讨论】:

  • +1 感谢您指出正确的方向。 GordonLinoff 几分钟前在上面的评论中给出了答案。
  • 没问题。遭受一个小错误肯定会导致许多程序员多次走错路。这将是您应该添加到常见错误中以检查文件的错误之一。
猜你喜欢
  • 1970-01-01
  • 2012-08-26
  • 1970-01-01
  • 2015-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-09
相关资源
最近更新 更多