如何在SQL Server中使用like运算符搜索特殊字符?

时间:2013-08-16 20:21:40

标签: sql-server-2008

我要求我必须使用SQL Server 2008 R2中的like运算符搜索特殊字符。

前:

Name = sk'saintho

select * from table1 where name like 'sk'saintho'

对于上述情况,我收到错误

  

'saintho'附近的语法不正确。

字符串''后面的未闭合引号。

对此问题的想法将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果您正在使用SQL Server Management Studio,您应该会看到语法格式显示您的查询有问题。

select * from table1 where name like 'sk'saintho'

sk组件为红色,为文字字符串,saintho为常规黑色文字。 SQL不理解'字符是字符串的一部分,而是假设这是字符串的结尾。

与许多其他语言一样,在字符串中包含字符串终止符号的正确方法是将其包含两次。使用它两次告诉解析器你想在字符串中包含'而不是结束字符串。

select * from table1 where name like 'sk''saintho'

如果要查找具有'字符的所有现有项目,可以在like语句中使用相同的模式

select * from table1 where name like '%''%'

解析器会将其解释为like %'%,您会发现名称中包含'的所有行。