Home > Backend Development > PHP Tutorial > Application explanation of where method

Application explanation of where method

jacklove
Release: 2023-04-01 08:48:02
Original
2474 people have browsed it

The usage of

where method is the essence of ThinkPHP query language and an important part and highlight of ThinkPHP ORM. It can complete query operations including ordinary query, expression query, quick query, interval query and combined query. The parameters of the where method support strings and arrays. Although objects can also be used, it is not recommended.

String condition

$User = M("User"); // 实例化User对象$User->where('type=1 AND status=1')->select();
Copy after login

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

Array condition

Normal query

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

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

Expression query

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

represents the query condition represented by id = 100

$map['id']  = array('neq',100);
Copy after login

The query condition is id <> 100

$map['id']  = array('gt',100);
Copy after login

represents the query condition is id > 100

$map['id']  = array('egt',100);
Copy after login

represents the query condition is id >= 100

$map['id']  = array('lt',100);
Copy after login

represents The query condition is id < 100

$map[&#39;id&#39;]  = array(&#39;elt&#39;,100);
Copy after login

The query condition represented is id <= 100

[NOT] LIKE: Same as sql's LIKE

$map[&#39;name&#39;] = array(&#39;like&#39;,&#39;thinkphp%&#39;);
Copy after login

The query condition becomes 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;);
Copy after login

The generated query condition is: (a like '%thinkphp%' OR a like '%tp') AND (b not like '% thinkphp%' AND b not like '%tp')

[NOT] BETWEEN: Same as sql's [not] between, query conditions support strings or arrays, for example:

$map[&#39;id&#39;]  = array(&#39;between&#39;,&#39;1,8&#39;);
Copy after login
$map[&#39;id&#39;]  = array(&#39;between&#39;,array(&#39;1&#39;,&#39;8&#39;));
Copy after login

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

$map[&#39;id&#39;]  = array(&#39;not in&#39;,&#39;1,5,8&#39;);
Copy after login
$map[&#39;id&#39;]  = array(&#39;not in&#39;,array(&#39;1&#39;,&#39;5&#39;,&#39;8&#39;));
Copy after login

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

$map[&#39;id&#39;]  = array(&#39;exp&#39;,&#39; IN (1,3,8) &#39;);
Copy after login

等同于

$map[&#39;id&#39;]  = array(&#39;in&#39;,&#39;1,3,8&#39;);
Copy after login

组合查询

$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);
Copy after login

等同于

$where['id'] = array('gt',1);$where['_string'] = ' (name like "%thinkphp%")  OR ( title like "%thinkphp") ';
Copy after login

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

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

相关推荐:

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

ThinkPHP5快速入门 方法的介绍

介绍ThinkPHP使用步骤

The above is the detailed content of Application explanation of where method. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template