Sql server sql server的奇怪行为
我的数据库中有以下表格结构Sql server sql server的奇怪行为,sql-server,sql,Sql Server,Sql,我的数据库中有以下表格结构 ID Name -------------------------- ID_1 Name1 ID1 Name2 当我执行以下查询时 SELECT * FROM tblNames WHERE ID LIKE '_1' 我选择了两张唱片 有什么建议如何摆脱它 SELECT * FROM tblNames WHERE ID LIKE '[_]1' 从TBL名称中选择* 我想在哪里找到“[[u
ID Name
--------------------------
ID_1 Name1
ID1 Name2
当我执行以下查询时
SELECT * FROM tblNames
WHERE ID LIKE '_1'
我选择了两张唱片
有什么建议如何摆脱它
SELECT * FROM tblNames
WHERE ID LIKE '[_]1'
从TBL名称中选择*
我想在哪里找到“[[u]1”
快速:是一个通配符,可以匹配任何内容
SELECT * FROM tblNames
WHERE ID LIKE '\_1' ESCAPE '\'
下划线(\u
)是LIKE表达式中与单个字符匹配的特殊字符
要匹配实际下划线,需要对其进行转义:
select * from tblNames where id like '%\_1' escape '\'
这里,我告诉SQLServer考虑反斜杠转义字符,并使用它来转义下划线。
或者,您可以将下划线表示为包含单个字符的字符范围-在本例中,它将被逐字解释为:select * from tblNames where id like '%[_]1'
更简洁一点
参考:。下划线字符是类
运算符的通配符,它匹配任何一个字符。在您的案例中,模式“_1”与数据中的“_1”和“D1”都匹配
要在模式中使用文字下划线字符,需要在其周围加上括号,使其成为仅包含一个字符的字符范围:
SELECT * FROM tblNames
WHERE ID LIKE '[_]1'