Heim  >  Artikel  >  Backend-Entwicklung  >  Anwendungserklärung der Where-Methode

Anwendungserklärung der Where-Methode

jacklove
jackloveOriginal
2018-06-15 10:34:542454Durchsuche

Die Verwendung der Where-Methode ist die Essenz der ThinkPHP-Abfragesprache und ein wichtiger Teil und Höhepunkt von ThinkPHP ORM. Sie kann Abfragevorgänge einschließlich gewöhnlicher Abfragen, Ausdrucksabfragen, schneller Abfragen, Intervallabfragen und kombinierter Abfragen durchführen. Die Parameter der where-Methode unterstützen Zeichenfolgen und Arrays. Obwohl auch Objekte verwendet werden können, wird dies nicht empfohlen.

String-Bedingung

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

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

Array-Bedingung

Normale Abfrage

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

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

Expression query

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

stellt die durch id = 100 dargestellte Abfragebedingung dar

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

Die Abfragebedingung is id <> Die durch 100

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

dargestellte Abfragebedingung ist id >= 100

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

Die Die Abfragebedingung ist id < 100

$map[&#39;id&#39;]  = array(&#39;lt&#39;,100);

Die dargestellte Abfragebedingung ist id <= 100

[NOT] LIKE

: Identisch mit SQL's LIKE

$map[&#39;id&#39;]  = array(&#39;elt&#39;,100);
Die Abfragebedingung wird zu einem Namen wie „thinkphp%“

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

Die generierte Abfragebedingung ist: (ein wie „%thinkphp%“ ODER ein wie „%tp“) UND (b nicht wie „%thinkphp%“ ' AND b not like '%tp')

[NOT] BETWEEN

: Wie SQLs [not] between unterstützen Abfragebedingungen Zeichenfolgen oder Arrays, zum Beispiel:

$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使用步骤

Das obige ist der detaillierte Inhalt vonAnwendungserklärung der Where-Methode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn