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的栏目导航程序
Oct 09 PHP
在PHP中使用与Perl兼容的正则表达式
Nov 26 PHP
粗略计算在线时间,bug:ip相同
Dec 09 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
Jun 15 PHP
php iconv() : Detected an illegal character in input string
Dec 05 PHP
php缓冲 output_buffering和ob_start使用介绍
Jan 30 PHP
php解决约瑟夫环示例
Apr 09 PHP
PHP命名空间(Namespace)简明教程
Jun 11 PHP
PHP会话控制:Session与Cookie详解
Sep 27 PHP
PHP封装的字符串加密解密函数
Dec 18 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
PHP常用header头定义代码示例汇总
Aug 29 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
Apache 配置详解(最好的APACHE配置教程)
2010/07/04 PHP
php实例分享之html转为rtf格式
2014/06/02 PHP
PHP的APC模块实现上传进度条
2015/10/27 PHP
php实现大文件断点续传下载实例代码
2019/10/01 PHP
客户端静态页面玩分页
2006/06/26 Javascript
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
extjs之去除s.gif的影响
2010/12/25 Javascript
jquery插件制作教程 txtHover
2012/08/17 Javascript
jquery按回车提交数据的代码示例
2013/11/05 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
2016/05/18 Javascript
js转html实体的方法
2016/09/27 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
2016/11/21 Javascript
搭建Bootstrap离线文档的方法
2016/12/02 Javascript
javascript设计模式之模块模式学习笔记
2017/02/15 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
实例详解BootStrap的动态模态框及静态模态框
2018/08/13 Javascript
Ant Design的可编辑Tree的实现操作
2020/10/31 Javascript
python二叉树遍历的实现方法
2013/11/21 Python
解析Python编程中的包结构
2015/10/25 Python
对Python中type打开文件的方式介绍
2018/04/28 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
python tornado微信开发入门代码
2018/08/24 Python
Python实现针对json中某个关键字段进行排序操作示例
2018/12/25 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
全世界最美丽的四星和五星级酒店预订:Prestigia.com
2017/11/15 全球购物
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
圣诞树世界:Christmas Tree World
2019/12/10 全球购物
上海天奕面试题笔试题
2015/04/19 面试题
经济系大学生求职信
2013/10/01 职场文书
马丁路德金演讲稿
2014/05/19 职场文书
低碳日宣传活动总结
2014/07/09 职场文书
竞选稿之小学班干部
2019/10/31 职场文书
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python
mybatis 获取更新记录的id
2022/05/20 Java/Android
MySQL外键约束(Foreign Key)案例详解
2022/06/28 MySQL