时间: 2020-08-23|304次围观|0 条评论

PHP模糊查询技术—正则表达式匹配查询
 
先来了解一下通配符
 
.    “.”是号匹配任意单个字符
*   “*”匹配0个或多个在它面前的字符
           X*表示匹配任何数量的x字符
        [..] 匹配中括号的任意字符
     [abc]匹配字符ab或c 
     [a-z]匹配任意字母
     [0-9]匹配任意数字
 
 
^   “^”表示以某个字符或字符串开始
 ^a 表示以字母a开头
$   “$”表示以某个字符或字符串结尾
 a$ 表示以字母a结尾
 
使用正则表达式匹配模式使用操作符是REGEXP 或 NOT REGEXP(RLIKE 或NOT RLIKE)
 
我们通过例子来证明吧,先看我们准备的数据
PHP模糊查询技术—正则表达式匹配查询插图
 
 
#查询用户名以字符 i 开头的
正则表达式 ^i
SELECT username FROM `uweb_admin_member` WHERE username REGEXP ' ^i ';
PHP模糊查询技术—正则表达式匹配查询插图1
 
 
#查询用户名以字符 r 结尾的
SQL匹配械 %r
正则表达式 r$
SELECT username FROM `uweb_admin_member` WHERE username REGEXP  ' r$ ';
PHP模糊查询技术—正则表达式匹配查询插图2
 
结果就是以 r 结尾的用户名
 
#匹配以i开头,r 结尾
正则语法:^i.*r$
SELECT username FROM `uweb_admin_member` WHERE username REGEXP ' ^i.*r$ ';
PHP模糊查询技术—正则表达式匹配查询插图3
 
 
#匹配6个字符长度的用户名
正则语法:......;6个点
SELECT username FROM `uweb_admin_member` WHERE username REGEXP ' ...... ';
PHP模糊查询技术—正则表达式匹配查询插图4
 
 
结果是字符长度6个或以上都出来了,说明只要字符中任意满足6个长度的都会出现。如果要精确的表示多少字符长度,就在前面和后面加定界符;精确查找6个字符长度的用户名:^......$
 
 
 
 
 
 
 文章写于很久以前,因为服务器原因现迁移至此
 
 

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《PHP模糊查询技术—正则表达式匹配查询
   

还没有人抢沙发呢~