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 has encountered an Access Violation
Jan 15 PHP
IP攻击升级,程序改进以对付新的攻击
Nov 23 PHP
php curl基本操作详解
Jul 23 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
Jan 07 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
Jan 22 PHP
thinkphp自带验证码全面解析
Sep 18 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
Oct 08 PHP
PHP实现RTX发送消息提醒的实例代码
Jan 03 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 PHP
Thinkphp 3.2框架使用Redis的方法详解
Oct 24 PHP
php访问对象中的成员的实例方法
Nov 17 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解答方法
2012/02/04 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
详解php命令注入攻击
2019/04/06 PHP
网站被黑的假象--ARP欺骗之页面中加入一段js
2007/05/16 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
JavaScript获取图片的原始尺寸以宽度为例
2014/05/04 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
2014/05/05 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
使用ajaxfileupload.js实现ajax上传文件php版
2014/06/26 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
javascript实现树形菜单的方法
2015/07/17 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
2017/07/28 Javascript
vue.js简单配置axios的方法详解
2017/12/13 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
vue props对象validator自定义函数实例
2019/11/13 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
Python的高级Git库 Gittle
2014/09/22 Python
用Python编写一个国际象棋AI程序
2014/11/28 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
强悍的Python读取大文件的解决方案
2019/02/16 Python
Python Django 添加首页尾页上一页下一页代码实例
2019/08/21 Python
在django中自定义字段Field详解
2019/12/03 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
使用Canvas操作像素的方法
2018/06/14 HTML / CSS
英国优质鞋类专家:Robinson’s Shoes
2017/12/08 全球购物
补充协议书范本
2014/04/23 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
新年祝酒词大全
2015/08/11 职场文书
承诺书的内容有哪些,怎么写?
2019/06/21 职场文书
如何书写授权委托书?
2019/06/25 职场文书
2019新学期家长会工作计划
2019/08/21 职场文书
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL