sqllike模糊查询,sql模糊查询like语句

http://www.itjxue.com  2023-01-22 05:21  来源:未知  点击次数: 

sql语句查询,多字段like模糊查询优化

1、多字段like模糊查询优化:

最常见的写法:

where a like '%xx%' or b like '%xx%' or c like '%xx%';

这种写法查询效率低,经过调查,下面的方法可以替代,并且效率高:

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

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

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

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

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

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

SQL之模糊查询的四种用法

MySql 使用 like关键字 进行模糊查询,like关键字 通常用在 where条件查询,like关键字 通常配合 %、_、[ ]、[^ ] 使用。

%表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。

注意:只能查询连续的文字。【比如“深圳市福田区”可以查询,“深圳市区”查询不出来】

注意:此语句没有那么灵活,比较适用于固定的某个文字的查询。

注意:此语句比较灵活,可以查询相隔几个文字,比较实用。【比如“深圳市福田区小学”可以查询,“深圳市福区小”也可以查询】

表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句。

表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。

sql server 模糊查询 like

注意

匹配的条件需要用 单引号 括起来。(单引号表示字符串,双引号表示对象的名字。)

输出中含有 % 名字:

注意

1、% 匹配的字符区分大小写。

2、% 不会匹配为 null 的数据。

3、查找以 F 开头 y 结尾的数据:

如果某一个数据在 y 后面还多了一个空格,以上写法是查询不到这个数据的。正确的做法是先使用函数去掉空格再查询。

Sql模糊查询(like)区分大小写

1、查询小写字母相关数据

2、查询大写字母相关数据

问题:通过上面两条SQL语句,发现MySQL的like查询时不区分大小写的

解决方法(查询时指定区分大小写):在like后面加个 binary 就OK了,或者在查询字段前面加 binary

SQL模糊查询Like语句中可以用变量吗

sql的模糊查询like字句是可以的使用变量的,具体操作步骤如下:

1、首先我们需要在数据库中准备演示数据。

2、接下来就直接在select中运用like,最普遍的是和两个%搭配。

3、接着如果百分号放在like查询串的后面则代表后面的内容不限制。

4、然后如果将百分号放在like查询串的前面,则代表以什么结尾,前面的内容不限制。

5、另外like查询串中还可以使用下划线,代表占位符。

6、后如果like串中出现中括号则代表的是可选内容。

SQL LIKE模糊查询

--下面这个应该是可以的!

create

proc

procget

--[存储过程名]

@proc1

varchar(50),--这个是一定要存在的参数

@proc2

varchar(50),

@proc3

varchar(50)

as

--定义一个要执行的字符串语句

declare

@aa

varchar(200)

set

@aa

=

'select

*

from

TA

where

'

+

'[表中的列名]

like

'

+

'''%'

+

@proc1

+

'%'''

--组合要执行的语句

--如果参数为空,就加上字符空串,否则就加上相应的条件语句

set

@aa

=

@aa

+

case

when

@proc2

is

null

then

''

else

'

and

[表中列名]

like'+'''%'+@proc2+

'%'''

end

set

@aa

=

@aa

+

case

when

@proc3

is

null

then

''

else

'

and

[表中列名]

like'+'''%'+@proc3+

'%'''

end

--执行语句

exec(@aa)

(责任编辑:IT教学网)

更多

推荐杀毒防毒文章