简单的MySQL SELECT失败,错误1054未知列

时间:2013-04-12 08:05:15

标签: php mysql select

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

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

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

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

  

Toyota.CollisionEstimatingID子句

中的未知列WHERE

此列已存在,我现在已经检查了数据库,表格和列的拼写至少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让它在phpMyAdmin中运行ONCE并删除除“CollisionEstimatingID”之外的所有内容并使用它来形成SELECT语句。但是当我尝试切割和粘贴时,没有骰子。

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

我很难过。有人想测试他们的编程勇气并帮助兄弟出去吗?

2 个答案:

答案 0 :(得分:1)

喜欢“”?

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

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

答案 1 :(得分:0)

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

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