Lew*_*urí 4 sql database sql-server sql-server-2014
我有一个SQL Server表Users
,其中codename
包含一个包含大量记录的列,例如:
...
[LP]Luis
JoseLuis
[LP]Pedroso
Luis
PedroLuis
[LP]Maria
CarlosJose
MariaJose
[LP]Carlos
Pedro
...
Run Code Online (Sandbox Code Playgroud)
我需要查询一个忽略所有codename
包含的搜索表单[LP]
我写了并运行以下查询:
SELECT TOP (15)*
FROM [Users]
WHERE [codename] LIKE '%Luis%'
AND [codename] NOT LIKE '%[LP]%'
Run Code Online (Sandbox Code Playgroud)
此查询不返回任何内容.
我想得到(在这个例子中)记录:
Luis
PedroLuis
JoseLuis
Run Code Online (Sandbox Code Playgroud)
如果我查询:
SELECT TOP (15) *
FROM [Users]
WHERE [codename] LIKE '%Luis%'
Run Code Online (Sandbox Code Playgroud)
我明白了:
[LP]Luis
JoseLuis
Luis
PedroLuis
Run Code Online (Sandbox Code Playgroud)
如果我添加到查询:
AND [codename] NOT LIKE '%[LP]%'
Run Code Online (Sandbox Code Playgroud)
我一无所获.
Gor*_*off 11
所有的字符串都有一个L
或者P
,这就是所%[LP]%
寻找的.
一种方法是逃避模式:
SELECT TOP (15) *
FROM [Users]
WHERE [codename] LIKE '%Luis%' AND
[codename] NOT LIKE '%/[LP/]%' escape '/';
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17085 次 |
最近记录: |