instr(column,'para') !=1 等价于 not like 'para%'
instr(column,'para') =0 等价于 not like '%para%'
2、效率问题:
经过开发使用,instr函数的模糊查询效率比like要好。
instr
(title,'手册')>0 相当于 title like '%手册%'
instr
(title,'手册')=1 相当于 title like '手册%'
instr
(title,'手册')=0 相当于 title not like '%手册%'
t表中将近有1100万数据,很多时候,我们要进行字符串匹配,在SQL语句中,我们通常使用like来达到我们搜索的目标。但经过实际测试发现,like的效率与
instr
函数差别相当大。下面是一些测试结果:
SQL> set timing on
SQL> select count(*) from t where
instr
(tit
instr
(title,'手册')>0相当于titlelike'%手册%'
instr
(title,'手册')=1相当于titlelike'手册%'
instr
(title,'手册')=0相当于titlenotlike'%手册%'t表中将近有1100万数据,很多时候,我们要进行字符串匹配,在SQL语句中,我们通常使用like来达到我们搜索的目标。但经过实际测...
oracle
在Where子句中,可以对datetime、char、varchar字段类型的列用Like子句配合通配符选取那些“很像…”的数据记录,以下是可使用的通配符:
% 零或者多个字符
_ 单一任何字符(下划线)
\ 特殊字符
oracle
10g以上支持正则表达式的函数主要有下面四个:
1,REGEXP_LIKE :与LIKE的功能相似
2,REGEXP_
INSTR
:与
INSTR
的功能相似
3,REGEXP_SUBSTR :与SUBSTR的功能相似
4,REGEXP_REPLACE :与REPLACE的功能相似
POSIX 正则表达式由标准的元字符(metach
instr
(name,'张三')>0 相当于 name like '%张三%'
instr
(name,'张三')=1 相当于 name like '张三%'
instr
(name,'张三')=0 相当于 name not like '%张三%'
实验得出,在一个2亿多条记录的表中,同时8个并行,使用like
查询
很久都不出来结果,但使用
instr
,4分钟即完成查找,性能是相当的好...
1.下面代码是一个
模糊
查询
,myName可以理解为输入框里面输入的内容
e.name是数据库里面的内容
简单来说就是 用输入框里面的myName 到数据库里面 查找e.name和 myName匹配的内容 进行
模糊
查询
2.注:MySQL中的
模糊
查询
like 和
Oracle
中的
instr
() 函数有同样的
查询
效果; 如下所示:MySQL: select * from tableName where name like ‘%helloworld%’;
Oracle
:select * from ta
● string1:源字符串,要在此字符串中查找。
●string2:要在string1中查找的字符串 。
●start_position:代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
●nth_appearance:代表要查找第几次出现
看到一篇文章:在
Oracle
数据库中使用
instr
代替like实操(见http://www.linuxidc.com/Linux/2009-12/23599.htm),看到之后很质疑,以下是我做的简单测试,以对原文作对比验证。1.创建索引前SQL> select count(1) from t;COUNT(1)----------11905920Elapsed: 00:00:11.38SQL...
* @param str 源字符串
* @param substr 子字符串
* @param position 检索位置,可省略(默认为1),参数为正时,从左向右检索,参数为负时,从右向左检索
* @param occurrence 检索子串出现次数(即子串在源串第几次出现),可省略(默认为1),值只能为正整数,否则会报错
* @return 返回子字符串在源字符串中出现的位置(没找到返回0)
查看测试数据select * from student; 1. like在where字句中使用like可以达到
模糊
查询
的效果,常用通配符如下▶ %: 使用 % 有三种情况① 字段 like ‘%关键字%’字段包含”关键字”的记录select * from student where stu_name like '%一%';
查询
结果是stu_name字段中所有包含“一”关键字的记录。② 字段 li...
今天来分享一个
oracle
中的函数:
instr
instr
函数种类:
instr
函数系列有(
instr
,
instr
b,
instr
c,
instr
2,
instr
4),这些函数主要是使用字符来搜索一个字符串的子串,并且返回该字符串中指定的子串的字符第一次出现的位置。函数的不同之处在于它们如何确定要返回的子字符串的位置。
instr
:默认按照输入的字符集来计算使用的字符串的长度。
instr
b:使用字节来...
instr
(sourceString,destString,start,appearPosition)
instr
('源字符串' , '目标字符串' ,'开始位置','第几次出现')
其中sourceStr...
在
Oracle
中like是经常用到的,但是对于数据比较多的
查询
使用like这种
模糊
查询
效率会比较低,所以可以尝试用
instr
代替like进行
查询
。用法:
instr
(‘源字符串/列名’,’目标字符串’) >0 相当于 like
instr
(‘源字符串/列名’,’目标字符串’) = 0 相当于 not like
另外,对于大小写不固定的like也可以用regexp_like
在这个信息量剧增的时代,如何帮助用户从海量数据中检索到想要的数据,
模糊
查询
是必不可少的。那么在Oracle中
模糊
查询
是如何实现的呢?一、我们可以在where子句中使用like关键字来达到
Oracle
模糊
查询
的效果;在Where子句中,可以对datetime、char、varchar字段类型的列用Like关键字配合通配符来实现
模糊
查询
,以下是可使用的通配符: (1)% :零或者多个字符,使用%有三种...