sqlserver 多个条件的 LIKE语句

如果表的一个字段,如果有"你好" ,"你" ,"我们",则查询出来这句
---------------------------------
select  *
from tablex
where f1 like '%[你好|你|我们]%'

 

最常见的写法:where  a like '%xx%' or b like '%xx%' or c like '%xx%';  这种写法查询效率低,经过调查,下面的方法可以替代,并且效率高:

1、如果like的关键字相同:

where instr(nvl(a, '')||nvl(b,'')||nvl(c,''),   'xx') > 0

把要模糊查询的字段先拼接起来,拼接时需要把null转成‘’,否则只要有一个字段值是空,整个拼接的字符串都成空了, 然后用instr 函数去过滤;

2、如果like的关键字不同:

where instr(a, 'xx') > 0  or  instr(b, 'yy') > 0  or instr(c, 'zz') > 0 

经过测试,这两种方法都比like效率要高;

--------------------- 作者:Andy猪猪侠 来源:CSDN 原文:https://blog.csdn.net/zhujianpengzha/article/details/52711554?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 在 SQL Server 中,可以使用 LIKE 运算符来匹配多个条件。可以使用通配符 % 来表示任意字符,使用 _ 来表示单个字符。例如,可以使用以下语句来匹配包含 "apple" 或 "banana" 的字符串: SELECT * FROM table_name WHERE column_name LIKE '%apple%' OR column_name LIKE '%banana%' 如果要匹配以特定字符开头或结尾的字符串,可以使用以下语句: SELECT * FROM table_name WHERE column_name LIKE 'apple%' OR column_name LIKE '%banana' 如果要匹配包含特定字符但不包含另一个字符的字符串,可以使用以下语句: SELECT * FROM table_name WHERE column_name LIKE '%apple%' AND column_name NOT LIKE '%banana%' ### 回答2: SQL Server 的 LIKE 是一种字符串匹配的模式匹配操作符,可以用于搜索符合特定模式的字符串。在 SQL Server 中,我们可以使用 LIKE 运算符执行基于多个条件的模糊查询。 LIKE 运算符可以与通配符一起使用,从而在模糊匹配时增加更多的灵活性和精度。通配符定义了一种模式,以便在模糊匹配中比较字符串。以下是SQL Server 中最常用的通配符: - %:表示零个或多个字符。 - _:表示一个字符。 我们可以在 LIKE 运算符中使用这些通配符来实现多个条件的模糊查询。例如,我们可以使用以下的语句来查找以字母“s”结尾,长度为三个字符的单词: SELECT word FROM dictionary WHERE word LIKE '_s%'; 在这个查询中,'_' 通配符匹配单个字符,“s%”表示以字母“s”开头的任何内容,因此返回所有以“s”结尾且长度为三个字符的单词。 我们还可以用 OR 运算符连接多个 LIKE 条件。例如,我们可以使用以下的语句来查找以“a”或“e”结尾的单词: SELECT word FROM dictionary WHERE word LIKE '%a' OR word LIKE '%e'; 在这个查询中,% 通配符匹配任何长度的字符,且 OR 运算符将两个 LIKE 条件连接在一起。 除了 LIKE 运算符,我们还可以使用其他运算符来实现多个条件的查询。例如,可以使用 IN 运算符查找符合多重条件的记录。例如,我们可以使用以下的语句查找颜色为红色或绿色的汽车: SELECT * FROM cars WHERE color IN ('red', 'green'); 在这个查询中,IN 运算符将颜色为“red”和“green”的汽车记录与查询结果相关联。这比使用多个 LIKE 条件更容易阅读和理解。 总之,SQL Server 中的 LIKE 运算符可以用于执行基于多个条件的模糊查询。我们可以使用通配符和 OR 运算符来连接多个 LIKE 条件,也可以使用其他运算符,例如 IN 运算符,来执行多重条件查询。 ### 回答3: SQL Server中的LIKE操作符用于与通配符一起搜索列中的模式。LIKE操作符包括两个通配符:%和_。可以使用LIKE操作符指定多个条件以搜索列中的模式。 在使用LIKE操作符时,您可以同时使用多个条件来搜索列中的模式。您可以将通配符与AND和OR运算符一起使用,以指定两个或多个条件。例如: SELECT * FROM 表名 WHERE 列1 LIKE '%XXX%' OR 列2 LIKE '%XXX%' 此查询将从列1和列2中搜索包含'XXX'的任何匹配项。 使用LIKE操作符时,还可以在通配符之间使用其他字符串。这样做可以根据多个条件搜索列中的模式。例如: SELECT * FROM 表名 WHERE 列1 LIKE '%AAA%' AND 列1 LIKE '%BBB%' 此查询将从列1中搜索包含'AAA'和'BBB'的任何匹配项。 还有另一种方法可以使用多个条件进行LIKE查询。您可以使用正则表达式,使用此方法需要将模式作为参数传递给REGEXP_LIKE函数。例如: SELECT * FROM 表名 WHERE REGEXP_LIKE ( 列1, 'AAA|BBB' ) 此查询将从列1中搜索包含'AAA'或'BBB'的任何匹配项。 总之,SQL Server中的LIKE操作符是一种非常有用的搜索模式的工具。在使用它时,您可以指定多个条件,这样可以更好地搜索列中的模式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值