当前位置:博客首页>>PHP >> 阅读正文

mysql中实现正则模糊查询功能

作者: 郑晓 分类: PHP 发布于: 2012-10-09 03:22 浏览(6,170) 评论(3)


这是从今天Q群里一个人问的一个问题中,偶然学到的一个知识,原来在mysql中也可以使用正则进行匹配搜索。

他的原题是这样的:说是做了一个输入框,需要根据输入框中输入的内容来查询数据库。现在有个问题,就是想用占位符来实现模糊查询,比如输入2*3,需要查询类似1223、223、2243,但不包括123这样的结果,也就是*代表一个通配占位符,这个位置必须有且只有一个字符,那这个查询要怎么写?

之前只会用mysql的like和%来实现一些简单的模糊查询,所以看到这个问题时首先想到的是如何通过php来实现这个功能。不过像这样的搜索只用php来实现的话可能会有一些麻烦,由于问题想实现的功能是实现匹配搜索、匹配查询,应该想到正则!

百度了下,mysql果然有着强大的正则匹配功能,用一个关键词REGEXP 来代替之前的LIKE,用一条的语句简单的实现了上面的功能:

SELECT * FROM `tb_name` where number REGEXP ‘2.3’;

 

 

       

本文采用知识共享署名-非商业性使用 3.0 中国大陆许可协议进行许可,转载时请注明出处及相应链接。

本文永久链接: https://www.zh30.com/mysql-achieve-positive-fuzzy-query.html

mysql中实现正则模糊查询功能:目前有3 条留言

用户评论头像 月小升的技术博客发表于 2012年10月23日 15:50[回复]

一般不用mysql的正则,效率太低。

    用户评论头像 郑晓发表于 2012年10月23日 15:53[回复]

    嗯。毕竟它不是专业干这个的,哈哈

用户评论头像 哼哼猪发表于 2012年10月09日 20:01[回复]

一般不使用sql命令