Explication de l'application de la méthode Where

jacklove
Libérer: 2023-04-01 08:48:02
original
2462 Les gens l'ont consulté

L'utilisation de la méthode Where est l'essence du langage de requête ThinkPHP et 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 status=1

Requête d'expression

$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

représente la condition de requête est id = 100 La requête condition représentée par

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

est la requête représentée par l'identifiant <> 100

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

est la requête représentée par l'identifiant > La condition est id >= 100

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

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

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

.

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

 : identique à la condition de requête LIKE

de SQL qui devient un nom comme 'thinkphp%'

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

$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
[NON] BETWEEN

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

$map[&#39;id&#39;]  = array(&#39;between&#39;,&#39;1,8&#39;);
Copier après la connexion
$map[&#39;id&#39;]  = array(&#39;between&#39;,array(&#39;1&#39;,&#39;8&#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>
<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);
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方法的应用更多相关内容请关注php中文网。

相关推荐:

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

ThinkPHP5快速入门 方法的介绍

介绍ThinkPHP使用步骤

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:php.cn
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!