2017-03-23 44 views
1

這是我發現的一個非常有趣的問題。無法在PostgreSQL中使用select子句

這裏是我的表的快照 majorversions Table

現在我試圖執行一個簡單的SELECT語句

select * from majorversions mav 
where mav.name = "Default-Media" 

它拋出

********** Error ********** 

ERROR: column "Default-Media" does not exist 
SQL state: 42703 
Character: 53 

它主要發生由於錯誤事實名稱columnType是文本,如果我用戶client_id在where子句中一切正常。

那麼如何寫一個名稱爲Column的where子句呢?

+2

使用單引號的字符串,就像''Default-Media''。雙引號引用一個名爲Default-Media的列。 – Andomar

+0

[PostgreSQL中的DISTINCT WHERE查詢]的可能重複(http://stackoverflow.com/questions/12480102/distinct-where-query-in-postgresql) –

+0

https://www.postgresql.org/docs/current/static /sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS –

回答

0

對於字符串使用單引號。 如果它用雙引號括起來,它會認爲它是一個列名,並且找不到該列。這就是爲什麼你會得到這個錯誤。

它應該是:

select * from majorversions mav 
where mav.name = 'Default-Media' 

什麼它試圖在查詢執行的是:

select * from majorversions mav where mav.name = mav.Default-Media 
0

默認,媒體應該寫'Default-Media',而不是"Default-Media"