如何在 SQL 服务器查询中同时使用 LIKE 和 NOT LIKE
How to use LIKE and NOT LIKE together in a SQL Server query
我有一个 SQL 服务器 table 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]%'
这个查询没有return任何东西。
我想获取(在此示例中)记录:
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 服务器 table 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]%'
这个查询没有return任何东西。
我想获取(在此示例中)记录:
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 '/';