有哪些不同的方法去逃避單引號('),在SQL LIKE
命令?方法去逃避單引號「類似」 SQL命令
一種方法是在每次必須轉義單引號時放置兩個單引號。
你能提供一些建議嗎?
數據庫:SQL Server 2005和Oracle 10g
有哪些不同的方法去逃避單引號('),在SQL LIKE
命令?方法去逃避單引號「類似」 SQL命令
一種方法是在每次必須轉義單引號時放置兩個單引號。
你能提供一些建議嗎?
數據庫:SQL Server 2005和Oracle 10g
你已經有答案了。您必須使用兩個單引號:
select * from table where field like '%''something''%'
最好的方法是將參數與ADO或ADO.NET綁定。
贊(在C#中使用ADO.NET爲例):
SqlCommand x = new SqlCommand(sqlConnection, @"select * from table where col like '%'[email protected]+'%'");
x.parameters.add(new SqlParameter("@para1",sqltype.varchar,100)).value = "this is a' test";
在SQL Server 2005你逃單引號( ')用雙單引號(''),如果你不想綁定:
select * from table where col like '%this is a'' test%'
兩個單引號是最好的解決方案。
或者,你可以使用一個CHAR(39)
來表示一個單引號字符。
UPDATE Employee SET LastName = 'O' + CHAR(39) + 'Brien'
WHERE ID=1;
CHAR(39)在SQL中不起作用 – Egalitarian 2010-08-18 06:15:35
也有 「Q-報價」 的方法:
select * from mytable where text like q'#%Here's some text%#';
這是可用,因爲甲骨文10.2。
我用「#」字符作爲分隔符的報價,但您可以使用幾乎不會出現的字符串(也有少數例外,如空格字符)的任何字符。
在一個簡單的例子,像上面我可能不會這麼做。我只是將單引號加倍,但在構建包含大量字符串文字的大型動態SQL語句時,它確實派上用場。
這不是隻適用於PL/SQL塊嗎?我想我們不能在普通的SQL中使用它。 – XING 2016-08-09 12:24:59
謝謝bdukes,我根本沒有注意到 – Floyd 2010-08-18 06:53:46