mysql---like-REGEXP

1.  Mysql的正则表达式仅仅是SQL语言的一个子集,可以匹配基本的字符、字符串。 
例如:select * from wp_posts where post_name REGEXP 'hello',可以检索出列post_name中所有包含字符串hello的行 
    REGEXP '.og'  .是正则表达式中里一个特殊的字符。它表示匹配一个字符,因此,dog,hog,mog等等都能匹配。

注意: 
    关于LIKE和REGEXP的区别:

#使用like语句查询prod_name=1000的数据

输入:SELECT prod_id , prod_name FROM products WHERE prod_name LIKE '1000';

输出:

可以看到输出为空,即什么也没输出。难道说数据表中并没有prod_name=1000的数据吗?

#使用正则表达式REGEXP

输入:SELECT prod_id , prod_name FROM products WHERE prod_name REGEXP'1000';

输出:+---------------+

         prod_name

      +---------------+

        JetPack 1000

      +----------------+

原因:Like匹配整个字段,而正则表达式regexp在列值内进行部分匹配,只要一部分满足正则规则则匹配成功;

个人理解:like匹配的是被匹配字段的整个值,只有被匹配字段的全部字符被包含在like中的时候才算匹配成功,;而正则表达式REGEXP则是匹配规则中的字符规则只要在被匹配字段的值中出现就算是匹配成功,返回行。例如:假如字段的值是abcd,like 'abc' 匹配失败, REGEXP ‘abc’匹配成功;

    关于大小写的区分: MySQL中正则表达式匹配(从版本3.23.4后)不区分大小写 。如果要区分大小写,应该使用BINARY关键字,如where post_name REGEXP BINARY 'Hello .000'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值