sql语句模糊查询like用法,sql语句大全及用法
大家好,今天小编来为大家解答sql语句模糊查询like用法这个问题,sql语句大全及用法很多人还不知道,现在让我们一起来看看吧!
在sql语句中,like所有的用法
在sql结构化查询语言中,like语句有着至关重要的作用。
like语句的语法格式是:select* from表名 where字段名 like对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。
A:%包含零个或多个字符的任意字符串:
1、like'Mc%'将搜索以字母 Mc开头的所有字符串(如 McBadden)。
2、like'%inger'将搜索以字母 inger结尾的所有字符串(如 Ringer、Stringer)。
3、like'%en%'将搜索在任何位置包含字母 en的所有字符串(如 Bennet、Green、McBadden)。
B:_(下划线)任何单个字符:
like'_heryl'将搜索以字母 heryl结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
C:[ ]指定范围([a-f])或集合([abcdef])中的任何单个字符:
1,like'[CK]ars[eo]n'将搜索下列字符串:Carsen、Karsen、Carson和 Karson(如 Carson)。
2、like'[M-Z]inger'将搜索以字符串 inger结尾、以从 M到 Z的任何单个字母开头的所有名称(如 Ringer)。
D:[^]不属于指定范围([a-f])或集合([abcdef])的任何单个字符:
like'M[^c]%'将搜索以字母 M开头,并且第二个字母不是 c的所有名称(如MacFeather)。
E:*它同于DOS命令中的通配符,代表多个字符:
c*c代表cc,cBc,cbc,cabdfec等多个字符。
F:?同于DOS命令中的?通配符,代表单个字符:
b?b代表brb,bFb等
G:#大致同上,不同的是代只能代表单个数字。k#k代表k1k,k8k,k0k。
下面我们来举例说明一下:
例1,查询name字段中包含有“明”字的。
select* from table1 where name like'%明%'
例2,查询name字段中以“李”字开头。
select* from table1 where name like'李*'
例3,查询name字段中含有数字的。
select* from table1 where name like'%[0-9]%'
例4,查询name字段中含有小写字母的。
select* from table1 where name like'%[a-z]%'
例5,查询name字段中不含有数字的。
select* from table1 where name like'%[!0-9]%'
以上例子能列出什么值来显而易见。但在这里,我们着重要说明的是通配符“*”与“%”的区别。
很多朋友会问,为什么我在以上查询时有个别的表示所有字符的时候用"%"而不用“*”?先看看下面的例子能分别出现什么结果:
select* from table1 where name like'*明*'
select* from table1 where name like'%明%'
大家会看到,前一条语句列出来的是所有的记录,而后一条记录列出来的是name字段中含有“明”的记录,所以说,当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“*”,用“*”的时候只在开头或者只在结尾时,而不能两端全由“*”代替任意字符的情况下。
SQL模糊查询语句怎么写啊
1、假设表名为product,商品名为name,简界为remark.则可如下写:select [name],[remark] from product name like'%aa%' or remark like'%aa%'.注:上面单引号的aa你表模糊查询输入的字符。
2、select* from(表名) where(搜索名称)like'%%' and id like'%(简介)%'
3、用 Like子句。比如:Select* from [TableName] where [名称] Like'%SQL%' and [简介] like'%Software%'这就是查询 [名称]字段中包含“SQL”、并且[简介]字段中包含“Software”的记录。
4、selet* from userwhere name like'%小%'order by id ascasc代表升序 desc代表降序。
扩展资料:
模糊搜索的定义主要有两种观点。
一是系统允许被搜索信息和搜索提问之间存在一定的差异,这种差异就是“模糊”在搜索中的含义。例如,查找名字Smith时,就会找出与之相似的Smithe, Smythe, Smyth, Smitt等。
二是实质上的搜索系统自动进行的同义词搜索。同义词由系统的管理界面配置。例如,配置“计算机”与“computer”为同义词后,搜索“计算机”,则包含“computer”的网页也会出现在搜索结果中。
将本地图片输入到图片搜索框,
1、假如你的图片带有意义的标题,比如“衣服”,那么搜索结果会显示相关文本搜索结果
2、假如你的图片标题没有任何含义,搜索结果只显示相关图片。
3、搜索精准度随不同图片可达到的满意程度不同,往往越是主流商业图片越精准
目前像百度、谷歌等搜索引擎及淘宝等平台均可实现此应用。
文本模糊搜索
搜索引擎或门户网站搜索:将文本输入搜索框,选择模糊搜索模式,即可得到匹配结果。
数据库搜索:一般模糊查询语句如下:SELECT字段 FROM表 WHERE某字段 Like条件。
其中关于条件,SQL提供了四种匹配模式:
1、%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
2、_:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:
3、[ ]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
4、[^ ]:表示不在括号所列之内的单个字符。其取值和 []相同,但它要求所匹配对象为指定字符以外的任一个字符。
5,查询内容包含通配符时
由于通配符的缘故,导致我们查询特殊字符“%”、“_”、“[”的语句无法正常实现,而把特殊字符用“[ ]”括起便可正常查询。
在不同的数据库中,模糊搜索的语句会有不同,可在系统帮助文档中了解。
参考资料来源:百度百科:模糊搜索
sql语句查询,多字段like模糊查询优化
1、多字段like模糊查询优化:
最常见的写法:
where a like'%xx%' or b like'%xx%' or c like'%xx%';
这种写法查询效率低,经过调查,下面的方法可以替代,并且效率高:
2、如果like的关键字相同:
where instr(nvl(a,'')||nvl(b,'')||nvl(c,''),'xx')> 0
把要模糊查询的字段先拼接起来,拼接时需要把null转成‘’,否则只要有一个字段值是空,整个拼接的字符串都成空了,然后用instr函数去过滤;
3、如果like的关键字不同:
where instr(a,'xx')> 0 or instr(b,'yy')> 0 or instr(c,'zz')> 0
经过测试,这两种方法都比like效率要高;
文章到此结束,如果本次分享的sql语句模糊查询like用法和sql语句大全及用法的问题解决了您的问题,那么我们由衷的感到高兴!