【发布时间】:2010-02-19 23:21:14
【问题描述】:
我正在尝试转义 LIKE 语句中的下划线字符。我尝试使用ESCAPE 关键字如下:
COLUMNNAME NOT LIKE '%[\_]xyz%' ESCAPE '\'
但它不起作用。当我真的希望它过滤掉 %_xyz% 时,它仍在过滤掉 %xyz%。
如果不是通过ESCAPE 关键字,那还怎么实现呢?
感谢任何帮助。
【问题讨论】:
标签: sql-server
我正在尝试转义 LIKE 语句中的下划线字符。我尝试使用ESCAPE 关键字如下:
COLUMNNAME NOT LIKE '%[\_]xyz%' ESCAPE '\'
但它不起作用。当我真的希望它过滤掉 %_xyz% 时,它仍在过滤掉 %xyz%。
如果不是通过ESCAPE 关键字,那还怎么实现呢?
感谢任何帮助。
【问题讨论】:
标签: sql-server
这应该可以工作:
COLUMNNAME NOT LIKE '%[_]xyz%'
这里不需要 ESCAPE。你写的应该也行。
如果你确实想使用 ESCAPE,你可以这样做:
columnname NOT LIKE '%\_xyz%' ESCAPE '\';
转义字符的文档是here。
【讨论】:
使用括号 [_]
这适用于我在 SQL Server 2005 中
select *
from #table
where a like '%[_]xyz%'
【讨论】:
不带括号试试:
COLUMNNAME NOT LIKE '%\_xyz%' ESCAPE '\'
【讨论】: