oracle like函数 介绍与优化

来源:互联网 发布:淮安悠迅网络 编辑:程序博客网 时间:2024/06/06 02:49

oracle like函数 介绍与优化

原文连接:http://www.itemperor.com/a/SQL/68.html

用法:

 like 'A%' -- 字符串以A 开头
 like '%A' -- 字符串以A 结尾
 like '%A%'-- 字符串以 包含A  ,(不管出现在字符串的什么位置)
 
 表  table1  包含字段 name 
 有时候我们用到的如下 语句

 select * from table1  where name like '%AB%' or name like '%20%' or name like '%30%'or name like '%12414%';
 但是查询起来特别慢,这个时候我们怎么去优化它

 1.确定 我们需求字符串的准确位置,譬如说我们 只要AB 开头,CD 结尾的字符,我们可以写成 name like 'AB%' or name like '%CD'

 2.数字大小比较,像这种有数字的,我们可以 以写成  to_number(name)>=20 and  to_number(name)<=30

 3.instr  instr(name,'AB') >0 ,这个通过角标表的位置可以提高效率    ---   instr()  函数返回字符串  角标所在的位置,没有返回0

 4.正则表示式: 如果仅仅取包含数字和字母 可以这样写
  where regexp_like(name,'[0-9]+|[A-Z]+')
  或者:        
 where regexp_like(name,'[[:alpha:]]+|[[:digit:]]+')
 --- regexp_like(): 字符串截取函数用于正则表达式 oracle 10g 函数, + :表示一个或者多个,| 表示或者的意思
 --[[:alpha:]] 任何字母。
 --[[:digit:]] 任何数字。
 
 5. 建立索引,给字段 name 建立个索引提高查询的效率
原创粉丝点击