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 相关文章推荐
MySQL时间字段究竟使用INT还是DateTime的说明
Feb 27 PHP
精美漂亮的php分页类代码
Apr 02 PHP
利用浏览器的Javascript控制台调试PHP程序
Jan 08 PHP
利用谷歌 Translate API制作自己的翻译脚本
Jun 04 PHP
PHP读取RSS(Feed)简单实例
Jun 12 PHP
php字符串截取函数用法分析
Nov 25 PHP
PHP获取音频文件的相关信息
Jun 22 PHP
Yii框架表单模型和验证用法
May 20 PHP
php简单计算年龄的方法(周岁与虚岁)
Dec 06 PHP
PHP简单实现合并2个数字键数组值的方法
May 30 PHP
PHP基于phpqrcode类生成二维码的方法详解
Mar 14 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 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
虫族 Zerg 历史背景
2020/03/14 星际争霸
一篇不错的PHP基础学习笔记
2007/03/18 PHP
PHP 网页过期时间的控制代码
2009/06/29 PHP
php smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
php中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
2009/08/15 Javascript
jquery 应用代码 方便的排序功能
2010/02/06 Javascript
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
js获得网页背景色和字体色的方法
2014/03/21 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
2017/04/14 jQuery
JavaScript中import用法总结
2019/01/20 Javascript
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
开始着手第一个Django项目
2015/07/15 Python
Python导出DBF文件到Excel的方法
2015/07/25 Python
python常用函数详解
2016/09/13 Python
python OpenCV学习笔记实现二维直方图
2018/02/08 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
Python的in,is和id函数代码实例
2020/04/18 Python
Python实现疫情地图可视化
2021/02/05 Python
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
比利时家具购买网站:Home24
2019/01/03 全球购物
北京银河万佳Java面试题
2012/03/21 面试题
文明礼仪演讲稿
2014/05/12 职场文书
党员干部群众路线个人整改措施
2014/09/18 职场文书
2015年档案管理员工作总结
2015/05/13 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书
卖车协议书范文
2016/03/23 职场文书
教你怎么用Python生成九宫格照片
2021/05/20 Python