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初学者头痛的十四个问题
Jul 12 PHP
如何在PHP程序中防止盗链
Apr 09 PHP
php利用header函数实现文件下载时直接提示保存
Nov 12 PHP
php中常用的预定义变量小结
May 09 PHP
php获取操作系统语言代码
Nov 04 PHP
Yii Framework框架获取分类下面的所有子类方法
Jun 20 PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 PHP
PHP内存缓存功能memcached示例
Oct 19 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
Nov 30 PHP
解决php-fpm.service not found问题的办法
Jun 06 PHP
php生出随机字符串
Jul 06 PHP
PHP异常处理定义与使用方法分析
Jul 25 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
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
Javascript改变CSS样式(局部和全局)
2013/12/18 Javascript
js判断变量初始化的三种形式及推荐用的形式
2014/07/22 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
javascript 判断页面访问方式电脑或者移动端
2016/09/19 Javascript
根据输入邮箱号跳转到相应登录地址的解决方法
2016/12/13 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
jQuery实现全选、反选和不选功能
2017/08/16 jQuery
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
vue中promise的使用及异步请求数据的方法
2018/11/08 Javascript
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
JS继承定义与使用方法简单示例
2020/02/19 Javascript
vue瀑布流组件实现上拉加载更多
2020/03/10 Javascript
JS中FileReader类实现文件上传及时预览功能
2020/03/27 Javascript
js实现批量删除功能
2020/08/27 Javascript
基于vue的video播放器的实现示例
2021/02/19 Vue.js
跟老齐学Python之网站的结构
2014/10/24 Python
安装Python和pygame及相应的环境变量配置(图文教程)
2017/06/04 Python
Python动态生成多维数组的方法示例
2018/08/09 Python
Python列表list排列组合操作示例
2018/12/18 Python
django解决订单并发问题【推荐】
2019/07/31 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
python def 定义函数,调用函数方式
2020/06/02 Python
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
VICHY薇姿英国官网:全球专业敏感肌护肤领先品牌
2017/07/04 全球购物
出国导师推荐信
2014/01/16 职场文书
趣味游戏活动方案
2014/02/07 职场文书
大学学雷锋活动总结
2014/06/26 职场文书
2016年五一劳动节专题校园广播稿
2015/12/17 职场文书
严以用权学习心得体会
2016/01/12 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android