本文主要介绍Oracle fuzzy query like的用法。我们可以在where子句中使用like关键字来达到Oracle模糊查询的效果。有需要的可以参考下面文章的具体内容。
目录
类似用法1的Oracle模糊查询。在where子句1中使用like关键字。_
2.[] 3.[]第二,Oracle中提供了instr(strSource,strTarget)函数。
Oracle 模糊查询like用法
一、where子句中使用like关键字
我们可以在where子句中使用like关键字,达到Oracle模糊查询的效果;在Where子句中,可以对字段类型为datetime、char和varchar的列使用带有通配符的Like关键字来实现模糊查询。
以下是可使用的通配符:
%:零个或多个字符。使用%有三种方法。
类似“% keyword%”的字段包含“keyword”的记录
类似“关键字%”的字段是其字段以“关键字”开头的记录
类似“% keyword”的字段是其字段以“keyword”结尾的记录
例子:
Select * from [user]其中unamelike'% 3% '
//搜索结果:“张三”、“小三”、“鼎猫”、“猫鼎”有三条记录。把他们都找出来。
select * from[user]where unamelike ' % three '(从后面匹配)
//搜索结果:“张三”、“小三”
//另外,如果需要找出uname中同时带有“three”和“cat”的记录,请使用and条件。
Select * from [user]其中unamelike“% three %”和unamelike“% cat %”
如果使用select * from[user]where unamelike ' % 3% cat % '//,虽然可以搜索“三条腿的猫”,但是不能搜索“三条腿的猫”。
1._
任何单个字符(下划线)通常用于限制表达式的字符长度:
例子:
select * from[user]where unamelike ' three '
//搜索结果:“猫有三只脚”这样uname就是三个字,中间那个是“三”;
select * from[user]where unamelike ' three _ _ ';
//搜索结果:“三条腿的猫”,使得uname是三个字符,第一个是“三”;
2.[]
一定范围内的字符代表括号中列出的字符之一(类似于正则表达式)。指定一个字符、字符串或范围,并要求匹配的对象是其中的任何一个。
例子:
select * from[user]where u _ name like '[张] three '
//搜索结果:“张三”、“李三”、“王三”(而不是“张莉王三”);
//如果有一系列字符(01234,abcde等。)在[],可以写成“0-4”或者“a-e”
Select * from [user]其中u _ name like' old [1-9]'
//搜索结果:“老1”,“老2”,“老9”;
3.[^]
不在特定范围内的字符的用法与[]相反。
二、在Oracle中提供了instr(strSource,strTarget)函数
Oracle中提供了instr(strSource,strTarget)函数,这比使用' % keyword% '的模式要高效得多。
instr函数也有三种情况:
Instr (field,' keyword') 0等效于类似' % keyword% '的字段
Instr (field,' keyword')=1相当于类似' keyword% '的字段
Instr (field,' keyword')=0相当于field not like'% keyword% '
例子:
select * from[user]where instr(uname,' three') 0
关于用法,请参考上面的Like。
特殊用法:
select id,namefrom user where instr('101914,104703 ',id) 0。
它相当于
select id,namefrom user其中id=101914或id=104703。
这就是Oracle模糊查询的细节,比如where子句中的用法。如需了解更多关于Oracle fuzzy query like的用法,请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。