SQL Server LIKE运算符不匹配包含方括号的值

时间:2018-10-09 10:52:29

标签: sql-server tsql sql-like

我的数据库中有一个表,我在其中插入了所有表名。 例如,我有表名[test]。[TestTable]以及运行此查询时

select * from Tables where Name like N'%[test].[TestTable]%' 

它不返回任何值,但是此查询有效:

select * from Tables where Name like N'%[TestTable]%'

有人可以解释我为什么吗?

2 个答案:

答案 0 :(得分:1)

您必须逃脱左方括号:

SELECT * FROM Tables WHERE Name LIKE N'%[[]test].[[]TestTable]%' 
-----------------------------------------^        ^
--------------------------------------------------+

答案 1 :(得分:0)

当您使用运算符LIKE并且在条件add []中,它具有另一种含义。 LIKE会将其读取为指定范围([a-f])或集合([abcdef])中的任何单个字符。

尝试使用:像N'%TestTable%'