答案 0 :(得分:12)
你已经有了答案。您必须使用两个单引号:
select * from table where field like '%''something''%'
答案 1 :(得分:2)
最好的方法是将参数与ADO或ADO.NET绑定。
like(C#with ADO.NET中的示例):
SqlCommand x = new SqlCommand(sqlConnection, @"select * from table where col like '%'+@para1+'%'");
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%'
答案 2 :(得分:2)
两个单引号是最佳解决方案。
或者,您可以使用CHAR(39)
来表示单引号字符。
UPDATE Employee SET LastName = 'O' + CHAR(39) + 'Brien'
WHERE ID=1;
答案 3 :(得分:1)
还有“Q-quote”方法:
select * from mytable where text like q'#%Here's some text%#';
自Oracle 10.2以来可以使用。
我使用'#'字符作为引号分隔符,但您几乎可以使用任何不会出现在字符串中的字符(有一些例外,例如空格字符)。
在上面的一个简单示例中,我可能不会这样做。我只是将单引号加倍,但在构建包含大量字符串文字的大型动态SQL语句时它确实派上用场。