簡體   English   中英

sql select語句給出列錯誤

[英]sql select statement giving column error

當我使用

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

我得到錯誤

錯誤1054:where子句中的未知列'U687678601'

但是當我鍵入

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

它工作正常。

我正在使用mysql。

我知道這是一個新手問題,但是誰能解釋這是為什么發生的,我可以通過編程方式添加引號嗎?通過代碼添加引號是個好主意嗎?

謝謝

“ U687678601”是字符串(不是數字),也不是表中的字段; 因此必須將其引用。

Order是一個reserverd關鍵字,您應該為表使用另一個名稱。 您可以將表名括在引號中,如下所示:

SELECT order_id from `order` where order_id=U687678601

至於值的引用,如果值是字符串類型,則應始終使用引號。 如果值是某種數字類型,則不必這樣做,但是將幾乎所有內容都封裝起來不會有任何危害。

當我們向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是保留關鍵字..因此,嘗試將表名更改為其他名稱,例如order_table,否則...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM