Rumah  >  Artikel  >  rangka kerja php  >  kaedah utama thinkphp penjelasan terperinci tentang kaedah where().

kaedah utama thinkphp penjelasan terperinci tentang kaedah where().

藏色散人
藏色散人ke hadapan
2021-12-09 16:43:013718semak imbas

Penggunaan

di mana kaedah adalah intipati ThinkPHP bahasa pertanyaan dan bahagian penting dan sorotan ThinkPHP ORM Ia boleh menyelesaikan pertanyaan biasa, pertanyaan ungkapan, pertanyaan pantas, pertanyaan selang dan pertanyaan gabungan operasi dalam. Parameter kaedah where menyokong rentetan dan tatasusunan Walaupun objek juga boleh digunakan, ia tidak disyorkan.

Keadaan rentetan

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

PILIH * DARI think_user WHERE type=1 DAN status=1

Keadaan tatasusunan

Pertanyaan biasa

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

PILIH * DARI think_user DI MANA `name`='thinkphp' DAN status=1

Pertanyaan ungkapan

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

mewakili id ​​syarat pertanyaan = 100

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

mewakili keadaan pertanyaan Keadaan pertanyaan diwakili oleh id <> 100

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

ialah syarat pertanyaan yang diwakili oleh id > = 100

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

mewakili keadaan pertanyaan ialah id <= 100

$map[&#39;id&#39;]  = array(&#39;lt&#39;,100);
[NOT] LIKE
: Sama seperti SQL LIKE

$map[&#39;id&#39;]  = array(&#39;elt&#39;,100);
keadaan pertanyaan menjadi nama seperti 'thinkphp% '

Syarat pertanyaan yang dijana ialah: (seperti '%thinkphp%' ATAU seperti '%tp') DAN (b tidak seperti '%thinkphp%' DAN b tidak seperti '% tp')

$map[&#39;name&#39;] = array(&#39;like&#39;,&#39;thinkphp%&#39;);
[BUKAN] ANTARA
: Sama seperti SQL [bukan] antara, syarat pertanyaan menyokong rentetan atau tatasusunan, contohnya:

$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;);

[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>
</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);

等同于

$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查询方法。

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

Atas ialah kandungan terperinci kaedah utama thinkphp penjelasan terperinci tentang kaedah where().. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:cnblogs.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam