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 面向对象 PHP5 中的常量
May 05 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
Jun 05 PHP
PHP加密函数 Javascript/Js 解密函数
Sep 23 PHP
ThinkPHP模板判断输出Empty标签用法详解
Jun 30 PHP
thinkphp中ajax与php响应过程详解
Dec 08 PHP
thinkPHP学习笔记之安装配置篇
Mar 05 PHP
php基于curl扩展制作跨平台的restfule 接口
May 11 PHP
开启PHP Static 关键字之旅模式
Nov 13 PHP
功能强大的PHP POST提交数据类
Jul 15 PHP
Laravel 5.3 学习笔记之 配置
Aug 28 PHP
php获取给定日期相差天数的方法分析
Feb 20 PHP
PHPExcel 修改已存在Excel的方法
May 03 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时间格式控制符对照表分享
2013/07/23 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
PHP session会话操作技巧小结
2016/09/27 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
JQUERY操作JSON实例代码
2010/02/09 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
Angular2管道Pipe及自定义管道格式数据用法实例分析
2017/11/29 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
2020/12/03 Javascript
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
Python实现矩阵加法和乘法的方法分析
2017/12/19 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
Python小进度条显示代码
2019/03/05 Python
详解使用python绘制混淆矩阵(confusion_matrix)
2019/07/14 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
python中with用法讲解
2020/02/07 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
python实现PCA降维的示例详解
2020/02/24 Python
使用Python对Dicom文件进行读取与写入的实现
2020/04/20 Python
Python2及Python3如何实现兼容切换
2020/09/01 Python
python 制作网站小说下载器
2021/02/20 Python
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
长安大学毕业生自我鉴定
2014/01/17 职场文书
澳大利亚商务邀请函
2014/01/17 职场文书
老师对学生的评语
2014/04/18 职场文书
员工趣味活动方案
2014/08/27 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
教师党员承诺书2015
2015/01/21 职场文书
离婚起诉书范本
2015/05/18 职场文书
银行资信证明
2015/06/17 职场文书