2011-03-31 81 views
0

當我使用SQL SELECT語句出欄錯誤

SELECT order_id from `order` where `order_id`=U687678601 

我得到錯誤

錯誤1054:在where子句

但是當我鍵入未知列 'U687678601'

SELECT order_id from`order` where `order_id`='U687678601' 

它工作正常..

我正在使用mysql。

我知道它是新手的問題,但任何人都可以解釋爲什麼發生這種情況,我可以編程方式添加引號,是它通過代碼添加報價

感謝

回答

0

當我們向SQL查詢提供一個字符串/ varchar類型時,我們必須用''來指定它。 和非varchar類型不需要提供''。 這就是爲什麼當你所寫的

SELECT order_id fromorder where order_id='U687678601' 

這是你的查詢工作正常顯示你的order_id列包含VARCHAR類型。所以從現在你應該應用以下語法的SQL查詢:

SELECT column_name,..... FROM table WHERE column_name = 'varchar_value' 

SELECT column_name,..... FROM table WHERE column_name = nonvarchar_value. 

,並認爲順序是保留關鍵字..所以嘗試將表名稱更改爲其他像order_table或其他...

0

訂單是被保留的關鍵字是個好主意,你應該爲你的表使用另一個名字。你可以用引號將表的名稱,就像這樣:

SELECT order_id from `order` where order_id=U687678601 

至於價值觀的報價,如果該值是字符串類型,你應該總是使用引號。如果該值是某種數字類型,則不需要,但幾乎所有內容都不會造成任何傷害。

+0

我編輯了這個問題,並添加了引號,但仍然收到相同的錯誤。 – shazia 2011-03-31 06:56:53

1

'U687678601'是一個字符串(不是數字),而不是表中的字段;所以必須引用它。