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 base64+gzinflate压缩编码和解码代码
Oct 03 PHP
PHP新手入门学习方法
May 08 PHP
Php中文件下载功能实现超详细流程分析
Jun 13 PHP
PHP超级全局变量数组小结
Oct 04 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
Apr 15 PHP
PHP中替换键名的简易方法示例详解
Jan 07 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
Oct 16 PHP
WordPress中创建用户角色的相关PHP函数使用详解
Dec 25 PHP
Zend Framework动作助手Redirector用法实例详解
Mar 05 PHP
php ajax异步读取rss文档数据
Mar 29 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
Jul 26 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
Dec 31 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/06/03 PHP
PHP中使用数组指针函数操作数组示例
2014/11/19 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
LazyLoad 延迟加载(按需加载)
2010/05/31 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
2015/05/09 Javascript
javascript实现手机震动API代码
2015/08/05 Javascript
jQuery与js实现颜色渐变的方法
2016/12/30 Javascript
bootstrap表单示例代码分享
2017/05/18 Javascript
使用javaScript实现鼠标拖拽事件
2020/04/03 Javascript
vue组件详解之使用slot分发内容
2018/04/09 Javascript
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
使用原生js编写一个简单的框选功能方法
2019/05/13 Javascript
LayUI数据接口返回实体封装的例子
2019/09/12 Javascript
vue+Element中table表格实现可编辑(select下拉框)
2020/05/21 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
2020/07/13 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
构建Python包的五个简单准则简介
2015/06/15 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
PyQt4编程之让状态栏显示信息的方法
2019/06/18 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
python 实现字符串下标的输出功能
2020/02/13 Python
关于解决iframe标签嵌套问题的解决方法
2020/03/04 HTML / CSS
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
大码女装:Ulla Popken
2019/08/06 全球购物
《鞋匠的儿子》教学反思
2014/03/02 职场文书
开学典礼决心书
2014/03/11 职场文书
防灾减灾活动总结
2014/08/30 职场文书
初中历史教学反思
2016/02/19 职场文书
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技
Java获取字符串编码格式实现思路
2022/09/23 Java/Android