sql语言like模糊查询–通配符

一、前言

    在SQL查询中,能对char, varchar,datetime等字段类型的列用Like子句配合通配符选取那些"很像…"的数据记录,以下是可使用的通配符:

a. "%" -->零个或者多个字符

b. "_" -->单一任何字符

c. "[]" -->在某一范围内的字符,e.g. 【0~9】

d. "[^]" -->不在某范围内的字符,如[^0-9]

二、四种匹配模式

假设user 这张表中只有一个字段'name',并且有四条记录:"张三","王三","唐三藏","一二三".

1.%表示任意0个或者多个字符,可匹配任意类型长度的字符:

<pre name="code" class="sql">select * from user where name like '%三%'

 会把 "张三","王三","唐三藏","一二三" 给查出来,而 

select * from user where name like '%三';
则只会查出来 "张三","王三","一二三"

select * from user where name like '%三%藏';
只会查出来 "唐三藏"。


2._表示任意单个字符,匹配单个任意字符,它常用来限制表达式的字符长度。

select * from user where name like '_三';
表示总共有两个字符,并且第二个字符为‘三’,结果:"张三","王三"

select * from user where name like '_三_';
表示总共有三个字符,并且第二个字符为‘三’,结果:"唐三藏"


3.[ ]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

select * from user where name regexp '[王张]三';
结果:"张三","王三"

4.[^ ] :表示不在括号所列之内的单个字符。其取值和[] 相同,但它要求所匹配对象为指定字符以外的任一个字符。

select * from user where name regexp '[^王张]三';
结果:"唐三藏","一二三"

注:本章适用于MySQL,如果使用 regexp则是使用正则匹配模式,可用于一般的正则匹配规则。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值