视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
php怎样实现模糊查询
2020-11-02 18:27:22 责编:小采
文档


php实现模糊查询的方法:1、使用SQL匹配模式,操作符就要使用LIKE或NOT LIKE,匹配时,不区分大小写;2、使用正则表达式匹配模式,其正则表达式出现在匹配字段的任意位置。

【相关学习推荐:php编程(视频)】

php实现模糊查询的方法:

方法1:SQL匹配模式

1.使用sql匹配模式,不能使用操作符=!=,而是使用操作符LIKE或NOT LIKE;

2.使用sql匹配模式,MYSQL提供了2种通配符。

  • %表示任意数量的任意字符(其中包括0个)

  • _表示任意单个字符

  • 3.使用sql匹配模式,如果匹配格式中不包含以上2种通配符中的任意一个,其查询的效果等同于=或!=

    4.使用sql匹配模式,匹配时,不区分大小写

    #查询用户名以某个字符开头的用户
    #查询用户名以字符'l'开头的用户: l%
    SELECT * FROM user WHERE username LIKE 'l%';
    #查询用户名以某个字符结尾的用户
    #查询用户名以字符'e'结尾的用户:e%
    SELECT * FROM user WHERE username LIKE 'e%';
    #查询用户名包含某个字符的用户
    #查询用户名包含字符'o'的用户:%o%
    SELECT * FROM user WHERE username LIKE '%o%';
    #查询包含三个字符的用户
    SELECT * FROM user WHERE username LIKE '___';
    #查询用户名第二个字符为o的用户:_o%
    SELECT * FROM user WHERE username LIKE '_o%';

    方法2:正则表达式匹配模式

    通配符(正则表达式)

    .匹配任意的单个字符

    *匹配0个或多个在它前面的字符

    x*表示匹配任何数量的x字符

  • [..]匹配中括号中的任意字符

  • [abc]匹配字符ab或c

  • [a-z]匹配任意字母

  • [0-9]匹配任意数字

  • [0-9]*匹配任意数量的任何数字

  • [a-z]*匹配任何数量的字母

  • ^表示以某个字符或字符串开始

    ^a 表示以字母a开头

    $表示以某个字符或字符串结尾

    s$表示以字母s结尾

    使用正则表达式匹配模式使用的操作符是:

    REGEXP NOT REGEXP(RLIKE 或 NOT RLIKE)

    注意:正则表达式匹配模式,其正则表达式出现在匹配字段的任意位置,

    其模式就算匹配了,不必在两侧放一个通配符来使得其匹配;

    如果仅用通配符 . 来匹配,假设N个,那么其匹配模式表示,大于等于N个;

    怎么理解上面这句话呢?

    就是说

    ... 匹配大于等于3个字符的数据

    .... 匹配大于等于4个字符的数据

    #查询用户名以字符 l开头的用户:^l;

    #正则表达式写法

    SELECT * FROM user WHERE username REGEXP '^l';
    #sql匹配模式写法:
    SELECT * FROM user WHERE username LIKE 'l%';
    #查询用户名正好是三个字符的用户:^...$;
    #sql匹配模式写法:
    SELECT * FROM user WHERE username LIKE '___';
    #正则表达式写法
    SELECT * FROM user WHERE username REGEXP '^...$';

    下载本文
    显示全文
    专题