2013-04-12 94 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' 
相關問題