sql - 如何在 SQL Server 查询中同时使用 LIKE 和 NOT LIKE

标签 sql sql-server database sql-server-2014

我有一个 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]%'

我一无所获

最佳答案

所有字符串都有一个 LP ,这就是%[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/

相关文章:

SQL Server - 授予对所有现有和 future 数据库进行读取访问的登录权限

sql - 每当我尝试运行这段代码时,它都会给我一个错误。 [ASP.NET SQL]

java - 如何从 java spring 中的 Long 字段值中删除 L

sql - #1064 - 你的 SQL 语法有错误;检查与您的 MariaDB 服务器相对应的手册

sql - 如何在 SQL Server 中多次检索行?

C# 和 SQL 服务器 : add parameter to query

sql - 在 SQL 中使用 max()

sql - 无法通过 SSMS 访问 MSDB 文件夹中的 SSIS 包

database - 数据类型字符变化没有访问方法 "gist"的默认运算符类

java - SOLR 新手,需要一些安装帮助