我在这个问题上做过研究,但是我在MySQL手册,MySQL错误报告,堆栈溢出或其他论坛中都没有读过这方面的内容。简单的MySQL选择失败,错误1054未知的列
我有一个简单的mysql选择查询:
SELECT * FROM `Toyota` WHERE `Toyota`.`CollisionEstimatingID` = '22028589';
此查询失败,MySQL错误代码1054
未知列
Toyota.CollisionEstimatingID
的WHERE
条款
此列确实存在,我检查了数据库的拼写,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'雪佛龙和一个颠倒的问号。
我很难过。任何人都想测试他们的编程能力,并帮助兄弟出去?
你是如何创建表?手型?文件导入? – Passerby
@Passerby - 我以编程方式创建表我有一个巨大的.txt导出文件集合来解析和导入,我必须写这个东西的查询。 – hypervisor666
像“”?这是UTF-8 BOM(http://en.wikipedia.org/wiki/Byte_order_mark)。可能必须先清理文件。 – KillerX