“在‘​​字段列表’未知列”,但列确实存在(“Unknown column in 'fiel

2019-08-22 18:32发布

DROP TABLE IF EXISTS `transactions`;
CREATE TABLE `transactions` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `purchase_date` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `transactions` (`purchase_date`) VALUES (NULL)

我孤立我的问题在此代码。 当我运行它,我得到的错误:

[错误在查询3]“字段列表”未知列“PURCHASE_DATE”

任何人的想法?

Answer 1:

有插入之间不可打印字符30(RecordSeparator) purchase_date'INSERT语句。 只需删除文本('purchase_date')并通过手工重写它应该罚款。



Answer 2:

小生了Nery解决方案时,我得到这个错误。

我有一个BEFORE INSERT在我的表做了一些与触发NEW.`field_mysql_doesnt_think_exists` ,如果我没有那场传递到一个INSERT语句,然后我会得到

[ERROR in query 3] Unknown column 'field_mysql_doesnt_think_exists' in 'field list'



Answer 3:

我只花了一天的大部分时间搞清楚了这一点。 我的问题是一样的:不可见的字符kiboshing查询并返回“未知列”的错误。

我涉水重新进入Windows和使用记事本++移除垃圾解决它。

垃圾怎么会在那里摆在首位? 我想这是因为我做了一些抄袭长期复杂的查询到LibreOffice的作家(我的功能规格文档)的错误,而不是只书签他们在phpMyAdmin或保存在文本编辑器。 从LibreOffice的它们粘贴到查询窗口中,(我认为)垃圾起源。

一旦出现,它坚持像疟疾。 我甚至不能用手工重新输入整个查询摆脱它 - 我不得不把它到记事本++(编码菜单),并显示ANSI和UTF8连击,然后用手取出垃圾。

这项工作完成,查询工作。



Answer 4:

如果您在构建表结构时粘贴列名称也会发生这种情况。 同样的错误 - 但无法打印/不可见的字符是表结构,而不是查询。



Answer 5:

这可能不是帮助别人,但加入这个“万一”,它可以帮助别人。

在我的情况,这是一个不同的解决方案。

我收到大型数据集为Excel CSV文件,并使用(WIL)脚本,将.csv文件转换成可导入.sql文件。 我曾在我的脚本发生错误,从而这两条线没有引用同一个表的名字(我已经硬编码的第一位置,并且忘记更新):

* "INSERT INTO `old_table_name` (`cid`, `date`, etc etc"
* "CREATE TABLE IF NOT EXISTS `":_dbName:"` (etc etc "

我只是改变了第一线,还从变量,瞧获得表名!

* "INSERT INTO `":_dbName:"` (`cid`, `date`, etc etc"

因此,检查您的导入SQL文件的两行。



Answer 6:

同样的错误在不同的情景:

当你错过了@符号的变量也会出现这种情况。

SET @myVar1=1;  SELECT @myVar1;  -- GOOD, correctly prints:  1
SET @myVar1=1;  SELECT  myVar1;  -- BAD, prints:  Unknown column 'myVar1' in 'field list' 


文章来源: “Unknown column in 'field list'”, but column does exist