2017-02-21 38 views
0

我有一個數據庫與字段:land, zone, domestic。我想根據用戶選擇的土地來獲取所有信息。所以我想我這樣做: SELECT * FROM myDB WHERE land=Norway(挪威是一個儲存國家)。MySQL如何從表中獲取特定行

但我得到錯誤unknown column Norway。這是因爲它找不到挪威或者似乎是什麼問題?

+1

缺少字符串引號 –

+1

您的意思是? 'SELECT * FROM myDB WHERE land ='Norway''? –

+0

'myDB'是你的表名,對吧?如果它是你的* Database *名稱,你應該注意[SaggingRufuses Answer](http://stackoverflow.com/a/42366991/3536236)。 – Martin

回答

6

它看起來像你沒有指定表名嘗試這樣的事:

SELECT * FROM MyDB.MyTable 
WHERE land = 'Norway' 

還要注意的是字符串挪威是單引號

+0

問題在於引號。謝謝! –

1

你需要引號字面

SELECT * FROM myDB.tablename WHERE land='Norway'; 

(和一個適當的表名),否則你的價值就像一個列名稱,並給你錯誤未知列挪威。

-1

您可以用'標記的選擇列/表,所以你應該這樣做

SELECT `column1`,`column2` FROM `tablename` WHERE `column`="value" 
+0

它也可以是單一的,也可以是雙重的,兩者都可以工作 – gyurix

+0

'SQL標準'定義(並且需要)'對字符串文字使用單引號。 [參考](http://stackoverflow.com/a/11321508/3536236)。雖然雙引號將起作用(這讓我感到吃驚),並且從技術上講沒有錯,但這並不是最佳做法。 – Martin

+0

好的,編輯我的答案 – gyurix

2

你之前,你已經使用了,按照我的意見對國名之後錯過了單引號前面的問題!

SELECT * FROM myDB WHERE land = 'Norway' 

上述查詢工作,前提是你的表實際上是命名爲myDB

0

您在查詢中使用所面臨的一列文本where子句。所以爲了比較你必須告訴dbms匹配的值。只使用挪威它不明白你是要求與挪威價值的行。使用'挪威'你告訴「嘿dbms在這裏你是你的文本對抗」。我希望我能幫忙。

相關問題