sql 语句用substr 不用 like 可以提升查询效率

据说在sql查询时用substr代替like 可以提升查询效率

像下面的例子:

用这个substr关键字

SELECT * FROM iplog a WHERE substr(a.ip, 0, 5) =’88.12′
用这个like关键字
SELECT * FROM iplog a WHERE a.ip LIKE ’88.12%’

 

在大多数SQL实现里都有获取字符串子串的函数。但名称可能略有不同,比如Oracle和SQL Server


   在Oracle里的语法是:

 

   SUBSTR(COLUMN NAME,STARTING POSITION,LENGTH)

 

   在SQLServer里的语法是:

 

   SUBSTRING(COLUMN NAME,STARTING POSITION,LENGTH)

 

   对于这个函数来说,这两个实现之间的惟一差别就是函数的名称。

 

   下面的SQL语句返回EMP ID的前3个字符:

 

   SELECT SUBSTRING(EMP_ID,1,3)FROM EMPLOYEE_TBL

 

   下面的SQL语句返回EMP_ID的第4个和第5个字符:

 

   SELECT SUBSTRING(EMP_ID,4,2)FROM EMPLOYEE_TBL

 

   下面的SQL语句返回EMP_ID的第6个到第9个字符:

 

   SELECT SUBSTRING(EMP_ID,6,4) FROM EMPLOYEE_TBL

 

   下面的范例在SQL Server和MySQL里都可以使用:

 

   SELECT EMP_ID,SUBSTRING(EMP_ID,1,3)


   FROM EMPLOYEE_TBL;

 

   EMP_ID         SUB
   .............. ...........
   311549902  311
   442346889  442
   213764555  213
   313782439  313
   220984332  220
   443679012  443

 

   6 rows affected.

 

   下面的SQL语句是用于Oracle的:

 

   SELECT EMP_ID,SUBSTR(EMP_ID,1,3)

 

   FROM EMPLOYEE_TBL;

 

   EMP_ID          SUB
   .........
   311549902   311
   442346889   442
   213764555   213
   313782439   313
   220984332   220
   443679012   443

 

   6 rows selected.

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值