2013-04-12 69 views
3

我在这个问题上做过研究,但是我在MySQL手册,MySQL错误报告,堆栈溢出或其他论坛中都没有读过这方面的内容。简单的MySQL选择失败,错误1054未知的列

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

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

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

未知列Toyota.CollisionEstimatingIDWHERE条款

此列确实存在,我检查了数据库的拼写,ta现在至少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中使用ONCE。但是当我尝试切割和粘贴时,没有骰子。

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

我很难过。任何人都想测试他们的编程能力,并帮助兄弟出去?

+0

你是如何创建表?手型?文件导入? – Passerby

+0

@Passerby - 我以编程方式创建表我有一个巨大的.txt导出文件集合来解析和导入,我必须写这个东西的查询。 – hypervisor666

+3

像“”?这是UTF-8 BOM(http://en.wikipedia.org/wiki/Byte_order_mark)。可能必须先清理文件。 – KillerX

回答

1

像“”?

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

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

+0

谢谢先生!你做了我的夜晚,并教育我开机!现在我终于可以入睡了:P – hypervisor666

+1

不客气(当你得到类似于“输出从第一行开始”的事情时,它是一个相对常见的PHP问题,并且第一行没有任何东西:)) – KillerX

0

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

SELECT * FROM Toyota WHERE Toyota.CollisionEstimatingID = '22028589' 
相关问题