我在這個問題上做過研究,但是我在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