我有一个 SQL Server 表 Users
,其中的列 codename
有很多记录,例如:
...
[LP]Luis
JoseLuis
[LP]Pedroso
Luis
PedroLuis
[LP]Maria
CarlosJose
MariaJose
[LP]Carlos
Pedro
...
我需要查询一个搜索表单,忽略所有包含 [LP]
的 codename
我编写并运行了以下查询:
SELECT TOP (15)*
FROM [Users]
WHERE [codename] LIKE '%Luis%'
AND [codename] NOT LIKE '%[LP]%'
此查询不返回任何内容。
我想获取(在此示例中)记录:
Luis
PedroLuis
JoseLuis
如果我查询:
SELECT TOP (15) *
FROM [Users]
WHERE [codename] LIKE '%Luis%'
我得到:
[LP]Luis
JoseLuis
Luis
PedroLuis
如果我添加到查询中:
AND [codename] NOT LIKE '%[LP]%'
我一无所获
最佳答案
所有字符串都有一个 L
或 P
,这就是%[LP]%
寻找。
一种方法是转义模式:
SELECT TOP (15) *
FROM [Users]
WHERE [codename] LIKE '%Luis%' AND
[codename] NOT LIKE '%/[LP/]%' escape '/';
关于sql - 如何在 SQL Server 查询中同时使用 LIKE 和 NOT LIKE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35737593/