Maison > cadre php > PensezPHP > Méthodes clés thinkphp, explication détaillée de la méthode Where()

Méthodes clés thinkphp, explication détaillée de la méthode Where()

藏色散人
Libérer: 2021-12-09 16:50:54
avant
3737 Les gens l'ont consulté

L'utilisation de la méthode

where est l'essence même du langage de requête ThinkPHP, et constitue également une partie importante et un point fort de ThinkPHP ORM. Elle peut effectuer des opérations de requête, notamment une requête ordinaire, une requête d'expression, une requête rapide, une requête par intervalle et une requête combinée. Les paramètres de la méthode Where prennent en charge les chaînes et les tableaux. Bien que les objets puissent également être utilisés, cela n'est pas recommandé.

Condition de la chaîne

$User = M("User"); // 实例化User对象$User->where('type=1 AND status=1')->select();
Copier après la connexion

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

Condition du tableau

Requête normale

$User = M("User"); 
// 实例化User对象
$map['name'] = 'thinkphp';
$map['status'] = 1; 
// 把查询条件传入查询方法
$User->where($map)->select();
Copier après la connexion

SELECT * FROM think_user WHERE `name`='thinkphp' AND The condition de requête représentée par status=1

Expression query

$map['字段1']  = array('表达式','查询条件1');
$map['字段2']  = array('表达式','查询条件2');
$Model->where($map)->select(); 
// 也支持
Copier après la connexion
$map['id']  = array('eq',100);
Copier après la connexion

est id = 100

$map['id']  = array('neq',100);
Copier après la connexion

La condition de requête représentée est id <> La condition de requête représentée par id > 100

$map['id']  = array('gt',100);
Copier après la connexion

est id >= 100

$map['id']  = array('egt',100);
Copier après la connexion

La condition de requête représentée est id <

[NOT] LIKE

 : Identique à SQL LIKE

$map[&#39;id&#39;]  = array(&#39;lt&#39;,100);
Copier après la connexion

La condition de requête devient un nom comme 'thinkphp%'

$map[&#39;id&#39;]  = array(&#39;elt&#39;,100);
Copier après la connexion
La condition de requête générée est : (un like '%thinkphp%' OU un like ' %tp') AND (b pas comme '%thinkphp%' AND b pas comme '%tp')

[NOT] BETWEEN

 : identique à [not] between de SQL, les conditions de requête prennent en charge les chaînes ou les tableaux, par exemple :

$map[&#39;name&#39;] = array(&#39;like&#39;,&#39;thinkphp%&#39;);
Copier après la connexion

$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;);
Copier après la connexion

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

$map[&#39;id&#39;]  = array(&#39;not in&#39;,&#39;1,5,8&#39;);
Copier après la connexion
$map[&#39;id&#39;]  = array(&#39;not in&#39;,array(&#39;1&#39;,&#39;5&#39;,&#39;8&#39;));
Copier après la connexion

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

$map[&#39;id&#39;]  = array(&#39;exp&#39;,&#39; IN (1,3,8) &#39;);
Copier après la connexion

等同于

$map[&#39;id&#39;]  = array(&#39;in&#39;,&#39;1,3,8&#39;);
Copier après la connexion

组合查询

$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>
</div>
<p>最后得到的查询条件就成了:( `id` != 1 ) AND ( `name` = 'ok' ) AND ( status=1 AND score>10 ) </p>
<p><strong style="margin:0px;padding:0px;">复合查询</strong></p>
<div class="cnblogs_code" style="margin:5px 0px;padding:5px;background-color:rgb(245,245,245);border:1px solid rgb(204,204,204);overflow:auto;font-size:13px;font-family:'Courier New';"><pre 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);
Copier après la connexion

等同于

$where['id'] = array('gt',1);
$where['_string'] = ' (name like "%thinkphp%")  OR ( title like "%thinkphp") ';
Copier après la connexion

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

等等这些都是常用的where查询方法。

本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/4994302.html,如需转载请自行联系原作者

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal