PHP模糊查询的实现方法(推荐)


Posted in PHP onSeptember 06, 2016

模式查询

1. SQL匹配模式

2. 正则表达式匹配模式(一般不推荐使用)

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%';

正则表达式匹配模式

通配符(正则表达式)

.匹配任意的单个字符

*匹配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 '^...$';

以上这篇PHP模糊查询的实现方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php 变量定义方法
Jun 14 PHP
Zend framework处理一个http请求的流程分析
Feb 08 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
Nov 07 PHP
curl实现站外采集的方法和技巧
Jan 31 PHP
php数组分页实现方法
Apr 30 PHP
Linux环境下php实现给网站截图的方法
May 03 PHP
php生成与读取excel文件
Oct 14 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
Oct 13 PHP
PDO::_construct讲解
Jan 27 PHP
Laravel框架下载,安装及路由操作图文详解
Dec 04 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
May 12 PHP
浅谈PHP中的数据传输CURL
Sep 06 #PHP
PHP实现页面静态化的超简单方法
Sep 06 #PHP
基于PHP实现短信验证码接口(容联运通讯)
Sep 06 #PHP
PHP7 新特性详细介绍
Sep 06 #PHP
PHP会员找回密码功能的简单实现
Sep 05 #PHP
浅谈php中urlencode与rawurlencode的区别
Sep 05 #PHP
浅谈mysql_query()函数的返回值问题
Sep 05 #PHP
You might like
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
2015/12/25 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2016/12/02 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
PHP信号处理机制的操作代码讲解
2019/04/19 PHP
动态添加js事件实现代码
2009/03/12 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
easyui datagrid 键盘上下控制选中行示例
2014/03/31 Javascript
详解JavaScript基于面向对象之创建对象(2)
2015/12/10 Javascript
JavaScript实现图片滑动切换的代码示例分享
2016/03/06 Javascript
js创建jsonArray传输至后台及后台全面解析
2016/04/11 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
jquery实现网页定位导航
2016/08/23 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
2017/04/27 jQuery
BACKBONE.JS 简单入门范例
2017/10/17 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
2019/04/22 Javascript
Vue获取页面元素的相对位置的方法示例
2020/02/05 Javascript
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
简单谈谈Python流程控制语句
2016/12/04 Python
使用pyecharts无法import Bar的解决方案
2020/04/23 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
详解pyppeteer(python版puppeteer)基本使用
2019/06/12 Python
python3中numpy函数tile的用法详解
2019/12/04 Python
matplotlib实现数据实时刷新的示例代码
2021/01/05 Python
Python对excel的基本操作方法
2021/02/18 Python
管理站站长岗位职责
2013/11/27 职场文书
运动会广播稿100字
2014/01/11 职场文书
24岁生日感言
2014/01/13 职场文书
公司联欢晚会主持词
2014/03/22 职场文书
党的群众路线教育实践活动自我剖析材料
2014/10/08 职场文书
办公室岗位职责
2015/02/04 职场文书
冬季作息时间调整通知
2015/04/24 职场文书
新生开学寄语大全
2015/05/28 职场文书
大学生活委员竞选稿
2015/11/21 职场文书
python实现过滤敏感词
2021/05/08 Python