2015-11-05 52 views
0

使用像我有一個表的列(名爲MyColumn),類似的「1」,「2」,「3」等 元素我倒要得到的一切從MyTable的地方Mycolumn等於「1」 我嘗試這個查詢如何找到單引號的文本,而不在PostgreSQL的

select * from MyTable where MyColumn='1' --- i've get 0 rows 

而且我想

select * from MyTable where MyColumn='\'1\''; 

我怎麼能找到文本元素也被加單引號?

+0

可以包含實際數據的取樣中你期望找到?是否有尾隨空格或其他字符?您可以使用REPLACE函數去除不需要的字符,如replace(MyColumn,'[','') – JosephStyons

+0

myColumn的類型是什麼? – Asoub

+0

您使用哪種編程語言?他們都支持以這種或那種方式引用值。請使用此功能。 –

回答

0

除了你平時做( doubling apostrophes/single quotes)在這種情況下,我想指出一個事實,即在PostgreSQL中,如果有更長的字符串可能包含大量「特殊字符」,則可以使用「美元轉義」。那麼你的聲明將是:

select * from MyTable where MyColumn = $$'1'$$; 

或者,如果你的風險具有雙重美元在您的字符串:

select * from MyTable where MyColumn = $THISWILLNEVERAPPEAR$'1'$THISWILLNEVERAPPEAR$; 

參見: http://www.postgresql.org/docs/current/interactive/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING

相關問題