目录
字符串条件
数组条件
普通查询
表达式查询
组合查询
首页 后端开发 php教程 where方法的应用讲解

where方法的应用讲解

Jun 15, 2018 am 10:34 AM
where

where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。where方法的参数支持字符串和数组,虽然也可以使用对象但并不建议。

字符串条件

$User = M("User"); // 实例化User对象$User->where('type=1 AND status=1')->select();
登录后复制

SELECT * FROM think_user WHERE type=1 AND status=1

数组条件

普通查询

$User = M("User"); // 实例化User对象$map['name'] = 'thinkphp';$map['status'] = 1; // 把查询条件传入查询方法$User->where($map)->select();
登录后复制

SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1

表达式查询

$map['字段1']  = array('表达式','查询条件1');$map['字段2']  = array('表达式','查询条件2');$Model->where($map)->select(); // 也支持
登录后复制
$map['id']  = array('eq',100);
登录后复制

表示的查询条件就是 id = 100

$map['id']  = array('neq',100);
登录后复制

表示的查询条件就是 id <> 100

$map['id']  = array('gt',100);
登录后复制

表示的查询条件就是 id > 100

$map['id']  = array('egt',100);
登录后复制

表示的查询条件就是 id >= 100

$map['id']  = array('lt',100);
登录后复制

表示的查询条件就是 id < 100

$map[&#39;id&#39;]  = array(&#39;elt&#39;,100);
登录后复制

表示的查询条件就是 id <= 100

[NOT] LIKE: 同sql的LIKE

$map[&#39;name&#39;] = array(&#39;like&#39;,&#39;thinkphp%&#39;);
登录后复制

查询条件就变成 name like 'thinkphp%'

$map[&#39;a&#39;] =array(&#39;like&#39;,array(&#39;%thinkphp%&#39;,&#39;%tp&#39;),&#39;OR&#39;);$map[&#39;b&#39;] =array(&#39;notlike&#39;,array(&#39;%thinkphp%&#39;,&#39;%tp&#39;),&#39;AND&#39;);
登录后复制

生成的查询条件就是:(a like '%thinkphp%' OR a like '%tp') AND (b not like '%thinkphp%' AND b not like '%tp')

[NOT] BETWEEN :同sql的[not] between, 查询条件支持字符串或者数组,例如:

$map[&#39;id&#39;]  = array(&#39;between&#39;,&#39;1,8&#39;);
登录后复制
$map[&#39;id&#39;]  = array(&#39;between&#39;,array(&#39;1&#39;,&#39;8&#39;));
登录后复制

[NOT] IN: 同sql的[not] in ,查询条件支持字符串或者数组,例如:

$map[&#39;id&#39;]  = array(&#39;not in&#39;,&#39;1,5,8&#39;);
登录后复制
$map[&#39;id&#39;]  = array(&#39;not in&#39;,array(&#39;1&#39;,&#39;5&#39;,&#39;8&#39;));
登录后复制

EXP:表达式,支持更复杂的查询情况

$map[&#39;id&#39;]  = array(&#39;exp&#39;,&#39; IN (1,3,8) &#39;);
登录后复制

等同于

$map[&#39;id&#39;]  = array(&#39;in&#39;,&#39;1,3,8&#39;);
登录后复制

组合查询

$User = M("User"); // 实例化User对象$map[&#39;id&#39;] = array(&#39;neq&#39;,1);$map[&#39;name&#39;] = &#39;ok&#39;;$map[&#39;_string&#39;] = &#39;status=1 AND score>10';$User->where($map)->select();</p>
<p style="margin: 10px auto; padding-top: 0px; padding-bottom: 0px; line-height: 19.5px; font-size: 13px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: rgb(254, 254, 242); text-align: left;">最后得到的查询条件就成了:( `id` != 1 ) AND ( `name` = 'ok' ) AND ( status=1 AND score>10 )</p>
<p style="margin: 10px auto; padding-top: 0px; padding-bottom: 0px; line-height: 19.5px; font-size: 13px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: rgb(254, 254, 242); text-align: left;"><span style="margin:0px;padding:0px;">复合查询</span></p>
<pre style="margin-top:0px;margin-bottom:0px;padding:0px;white-space:pre-wrap;font-family:'Courier New' !important;" class="brush:php;toolbar:false;">$where['name']  = array('like', '%thinkphp%');$where['title']  = array('like','%thinkphp%');$where['_logic'] = 'or';$map['_complex'] = $where;$map['id']  = array('gt',1);
登录后复制

等同于

$where['id'] = array('gt',1);$where['_string'] = ' (name like "%thinkphp%")  OR ( title like "%thinkphp") ';
登录后复制

查询条件是 
( id > 1) AND ( ( name like '%thinkphp%') OR ( title like '%thinkphp%') )

本文讲解了where方法的应用更多相关内容请关注php中文网。

相关推荐:

ThinkPHP 双重循环遍历输出 的相关内容

ThinkPHP5快速入门 方法的介绍

介绍ThinkPHP使用步骤

以上是where方法的应用讲解的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Laravel 集合中的 Where 方法实用指南 Laravel 集合中的 Where 方法实用指南 Mar 10, 2024 pm 04:36 PM

Laravel集合中的Where方法实用指南在Laravel框架的开发过程中,集合(Collection)是一个非常有用的数据结构,它提供了丰富的方法来操作数据。其中,Where方法是一个常用的筛选方法,能够根据指定条件来过滤集合中的元素。本文将介绍Laravel集合中Where方法的使用,通过具体的代码示例来演示其用法。1.基本用法Where方法的

Laravel 集合中如何使用 Where 方法 Laravel 集合中如何使用 Where 方法 Mar 10, 2024 pm 10:21 PM

Laravel集合中如何使用Where方法Laravel是一个流行的PHP框架,它提供了丰富的功能和工具,方便开发者快速构建应用程序。其中,集合(Collection)是Laravel中一个非常实用和强大的数据结构,开发者可以使用集合对数据进行各种操作,如过滤、映射、排序等。在集合中,Where方法是一个常用的方法,用于根据指定的条件过滤集

从入门到精通:掌握is与where选择器的使用技巧 从入门到精通:掌握is与where选择器的使用技巧 Sep 08, 2023 am 09:15 AM

从入门到精通:掌握is与where选择器的使用技巧引言:在进行数据处理和分析的过程中,选择器(selector)是一项非常重要的工具。通过选择器,我们可以按照特定的条件从数据集中提取所需的数据。本文将介绍is和where选择器的使用技巧,帮助读者快速掌握这两个选择器的强大功能。一、is选择器的使用is选择器是一种基本的选择器,它允许我们根据给定条件对数据集进

mysql left join的基本用法及on与where的区别是什么 mysql left join的基本用法及on与where的区别是什么 Jun 02, 2023 pm 11:54 PM

前言我们在写sql语句的时候,总是无法避免使用到连接关键词,比如内连接、外连接。种类是很多的,我在这里贴上一张在别处找到的图:这张图我认为是非常详细了,它展示出了SQL语句中常见的链接类型,以本文中的leftjoin为例,网上是这么给定义的:LEFTJOIN关键字会从左表那里返回所有的行,即使在右表中没有匹配的行。其实光从字面意思上来说的话,leftjoin是比较好理解的,但是在使用的过程中,还是会有一些问题的,比如条件在on后面与在where后面,他们的结果是完全不一样的,接下来我们就从浅到深

Laravel 集合中的 Where 方法用法解析 Laravel 集合中的 Where 方法用法解析 Mar 09, 2024 pm 06:51 PM

Laravel是一款流行的PHP开发框架,它提供了丰富且便捷的功能,其中集合(Collection)是Laravel中非常重要的数据结构之一。集合类提供了许多强大的方法,其中一个常用的方法是where方法。本文将通过具体的代码示例来解析Laravel集合中的where方法用法。1.创建集合首先,我们需要创建一个包含一些数据的集合。可以

Laravel中where方法的常见错误及解决方法 Laravel中where方法的常见错误及解决方法 Mar 10, 2024 pm 06:03 PM

Laravel中where方法的常见错误及解决方法在使用Laravel框架进行开发的过程中,我们经常会使用到EloquentORM来操作数据库。其中,where方法是一个非常常用的方法,用于筛选数据库中的数据。然而,由于对Laravel框架不够熟悉或者对EloquentORM理解不深,很容易在使用where方法时出现一些常见的错误。本文将介绍几种常见的w

Laravel 集合的 Where 方法详解 Laravel 集合的 Where 方法详解 Mar 10, 2024 pm 01:33 PM

Laravel是一款流行的PHP框架,其集合(Collections)类提供了强大的数据处理功能。其中,Where方法是集合类中常用的方法之一,用于筛选符合条件的数据。本文将详细介绍Laravel集合的Where方法,包括使用方法、参数含义以及具体的代码示例。一、Where方法概述Where方法用于筛选集合中符合指定条件的元素,并返回一个

SQL中如何使用WHERE子句规定选择的标准 SQL中如何使用WHERE子句规定选择的标准 Jun 03, 2023 pm 04:31 PM

SQLWHERE子句WHERE子句用于规定选择的标准。如需有条件地从表中选取数据,可将WHERE子句添加到SELECT语句。语法如下:SELECT列名称FROM表名称WHERE列运算符值下面的运算符可在WHERE子句中使用:=:等于:不等于>:大于=:大于等于1965

See all articles