sql语句里“like”有没有反向用法?

2024-12-04 21:53:24
推荐回答(1个)
回答1:

没有的。

SQL即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。SQL语句无论是种类还是数量都是繁多的,很多语句也是经常要用到的,SQL查询语句就是一个典型的例子,无论是高级查询还是低级查询,SQL查询语句的需求是最频繁的。

SQL反向模糊查询,需要用到的函数为instr(str1,str2),instr(str1,str2)表示st,比如:  SELECT * FROM TABLE_NAME T WHERE INSTR('唐飞',T.NAME)>0;

注:NAME为TABLE_NAME 中的一个字段,为VARCHAR类型。instr(str1,str2)>0表示str1包含str2;  instr(str1,str2)>=表示str1不包含str2。

由1、2很容易可以看出来instr完全可以替代like,至少在以上示例中可以替代。只要把str1和str2换个位置就可以达到like效果。

instr的效率是比like要高些(orace对内建函数做了优化),而且使用like时,一些索引是不能用的,但oracle支持函数索引,如果使用函数索引的话,执行更快。     

一般的数据库中,instr和like的效率是没有多大差别的,但对于oracle数据库可以通过函数索引来提高instr的执行效率。