【问题标题】:Simple MySQL SELECT fails with error 1054 Unknown Column简单的 MySQL SELECT 失败,错误 1054 Unknown Column
【发布时间】:2013-04-12 08:05:14
【问题描述】:

我对这个问题进行了研究,到目前为止,我在 MySQL 手册、MySQL 错误报告、Stack Overflow 或其他论坛中所读到的任何内容都没有帮助。

我有一个简单的 mysql 选择查询:

SELECT * FROM `Toyota` WHERE `Toyota`.`CollisionEstimatingID` = '22028589';

此查询失败,mysql 错误代码 1054

WHERE 子句中的未知列 Toyota.CollisionEstimatingID

此列确实存在,我已经检查了数据库、表和列的拼写至少 30 次。我什至删除了我的数据库并重新导入。我试过用反引号和不带反引号,有别名和没有别名'我试过用显式命名的 table.column 语法,没有显式语法,我试过混合和匹配我所有的东西提到(表上的反引号,而不是列上的反引号,列上的但不是表名),似乎没有任何效果。当我从 Ubuntu 12.04 上的 mysql CLI 执行它时它失败,它从我的 PHP 5.3 代码中失败,并且它在 phpMyAdmin 内部失败。我已经准备好掀桌子了。

当我尝试这个时:

SELECT * FROM `Toyota`;

这没有任何问题吗?天哪,MySQL真是个逗比……

这是源自show create database Toyota;的表格设置

CREATE TABLE `Toyota` (
  `CollisionEstimatingID` varchar(255) DEFAULT NULL,
  `OE_part_number` varchar(255) DEFAULT NULL,
  `Price` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1

一个有趣的注释——我想知道它是否可能是字符编码问题?我确实通过使用show create table Toyota 并删除除“CollisionEstimatingID”之外的所有内容并使用它来形成 SELECT 语句,让它在 phpMyAdmin 中工作一次。但是当我尝试剪切和粘贴时,没有骰子。

我尝试使用 utf8 字符集重新创建数据库和表以查看是否有帮助,但没有帮助。我尝试将文本从 phpMyAdmin 窗口复制到我的源代码中——在列名的开头产生了一些时髦的字符——有点像这样:>>?CollisionEstimatingID 只是它是一个带有变音符号的“i”+ a双右雪佛龙和一个倒置的问号。

我被难住了。有人想测试他们的编程勇气并帮助兄弟吗?

【问题讨论】:

  • 你是如何创建表格的?手型?文件导入?
  • @Passerby -- 我以编程方式创建了表我有大量 .txt 导出文件要解析和导入,我必须针对这些内容编写查询。
  • 喜欢“”?这是 UTF-8 BOM (en.wikipedia.org/wiki/Byte_order_mark)。可能必须首先清理文件。
  • @KillerX -- 是的,就这样!
  • @KillerX 请将您的回复作为答案发布,我会接受。我认为这正是错误 - 列名是 .txt 文件中的第一个名称,我用 C++ 打开 .txt 转储文件,读取第一行,解析它,并将其转换为创建表语句,我必须拿起 BOM,它成为列名的一部分……难怪我的 SQL 查询不匹配……

标签: php mysql select


【解决方案1】:

喜欢“”?

这是 UTF-8 BOM (en.wikipedia.org/wiki/Byte_order_mark)。

您可能需要先清理输入文件。

【讨论】:

  • 谢谢您,先生!你让我度过了一个夜晚,并教育我引导!现在我终于可以睡觉了:P
  • 不客气(这是一个相对常见的 PHP 问题,当您得到诸如“输出从第 1 行开始”之类的东西并且第 1 行没有内容时 :))
【解决方案2】:

您的代码没有任何问题,因为我已经对我的 SQL Server 进行了一些测试。 可以试试这个

SELECT * FROM Toyota WHERE Toyota.CollisionEstimatingID = '22028589'

【讨论】:

    猜你喜欢
    • 2017-09-02
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 2018-09-10
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    相关资源
    最近更新 更多