我在我的azure数据库中遇到这种情况,我需要搜索包含_字符的任何行。这是数据库中的一个特殊字符,所以我试图逃避它,但我得到了每一行。
select * from table where fieldColumn like '%_%'
will return everything on the table
select * from table where fieldColumn like '%\_%'
returns nothing
select * from table where fieldColumn = '_'
作品
那么如何才能获得只有一个_和所有其他可能在字符串上有_的行?
答案 0 :(得分:0)
从表中选择*,其中fieldColumn像'%_%'一样'\';
LIKE
:
escape_character
是一个放在通配符前面的字符,表示通配符应该被解释为常规字符而不是通配符。escape_character
是没有默认值的字符表达式,必须只评估一个字符。
答案 1 :(得分:0)
您可以设置所需的任何转义字符,如下所示:
select * from table where fieldColumn like '%!_%' ESCAPE '!'
我在这里使用!作为转义字符,告诉SQL Server将以下字符_作为字符串文字处理。
有关详细信息,请参阅文档:http://technet.microsoft.com/en-us/library/ms179859.aspx