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水印技术
Feb 14 PHP
php mssql 分页SQL语句优化 持续影响
Apr 26 PHP
获取PHP警告错误信息的解决方法
Jun 03 PHP
php中hashtable实现示例分享
Feb 13 PHP
重新认识php array_merge函数
Aug 31 PHP
php删除文本文件中重复行的方法
Apr 28 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
May 20 PHP
PHP进行批量任务处理不超时的解决方法
Jul 11 PHP
php并发加锁示例
Oct 17 PHP
thinkPHP5.0框架自动加载机制分析
Mar 18 PHP
php实现微信公众号创建自定义菜单功能的实例代码
Jun 11 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
Mar 09 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
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
javascript window对象属性整理
2009/10/24 Javascript
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
js Math 对象的方法
2013/09/01 Javascript
JSON字符串和对象之间的转换详解
2015/05/26 Javascript
js限制文本框只能输入中文的方法
2015/08/11 Javascript
jQuery实现ctrl+enter(回车)提交表单
2015/10/19 Javascript
微信小程序图表插件(wx-charts)实例代码
2017/01/17 Javascript
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
vue双向绑定及观察者模式详解
2019/03/19 Javascript
小程序根据手机机型设置自定义底部导航距离
2019/06/04 Javascript
vue实现鼠标经过动画
2019/10/16 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
Python SQLite3简介
2018/02/22 Python
Python处理中文标点符号大集合
2018/05/14 Python
解决pandas使用read_csv()读取文件遇到的问题
2018/06/15 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
html5关于外链嵌入页面通信问题(postMessage解决跨域通信)
2020/07/20 HTML / CSS
Tory Burch英国官方网站:美国时尚生活品牌
2017/12/06 全球购物
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
J2EE中的容器都包括哪些
2013/08/21 面试题
市场营销专业推荐信
2013/11/03 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
教育实习指导教师评语
2014/12/31 职场文书
贫困生助学金感谢信
2015/01/21 职场文书
幼儿园教师自我评价
2015/03/04 职场文书
叶问观后感
2015/06/15 职场文书
生日赠语
2015/06/23 职场文书
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL
python实现双向链表原理
2022/05/25 Python
Java实现简单小画板
2022/06/10 Java/Android