目錄
字串條件
陣列條件
普通查詢
表達式查詢
组合查询
首頁 後端開發 php教程 where方法的應用講解

where方法的應用講解

Jun 15, 2018 am 10:34 AM
where

where方法的用法是ThinkPHP查詢語言的精髓,也是ThinkPHP ORM的重要組成部分和亮點所在,可以完成包括普通查詢、表達式查詢、快速查詢、區間查詢、組合查詢在內的查詢操作。 where方法的參數支援字串和數組,雖然也可以使用物件但不建議。

字串條件

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

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

陣列條件

普通查詢

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

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

表達式查詢

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

表示的查詢條件就是id = 100

$map['id']  = array('neq',100);
登入後複製

表示的查詢條件就是id <> 100

$map['id']  = array('gt',100);
登入後複製

表示的查詢條件就是id > 100

$map['id']  = array('egt',100);
登入後複製

表示的查詢條件就是id >= 100

$map['id']  = array('lt',100);
登入後複製

表示的查詢條件就是id < 100

$map[&#39;id&#39;]  = array(&#39;elt&#39;,100);
登入後複製

表示的查詢條件就是id <= 100

[NOT] LIKE: 同sql的LIKE

$map[&#39;name&#39;] = array(&#39;like&#39;,&#39;thinkphp%&#39;);
登入後複製

查詢條件就變成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;);
登入後複製

產生的查詢條件就是:(a like '%thinkphp%' OR a like '%tp') AND (b not like '% thinkphp%' AND b not like '%tp')

[NOT] BETWEEN :同sql的[not] between, 查詢條件支援字串或數組,例如:

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

以上是where方法的應用講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Laravel 集合中的 Where 方法實用指南 Laravel 集合中的 Where 方法實用指南 Mar 10, 2024 pm 04:36 PM

Laravel集合中的Where方法實用指南在Laravel框架的開發過程中,集合(Collection)是一個非常有用的資料結構,它提供了豐富的方法來操作資料。其中,Where方法是常用的篩選方法,能夠根據指定條件來過濾集合中的元素。本文將介紹Laravel集合中Where方法的使用,透過具體的程式碼範例來示範其用法。 1.基本用法Where方法的

Laravel 集合如何使用 Where 方法 Laravel 集合如何使用 Where 方法 Mar 10, 2024 pm 10:21 PM

Laravel集合中如何使用Where方法Laravel是一個流行的PHP框架,它提供了豐富的功能和工具,方便開發者快速建立應用程式。其中,集合(Collection)是Laravel中一個非常實用且強大的資料結構,開發者可以使用集合對資料進行各種操作,例如過濾、映射、排序等。在集合中,Where方法是一個常用的方法,用於根據指定的條件過濾集

從入門到精通:掌握is與where選擇器的使用技巧 從入門到精通:掌握is與where選擇器的使用技巧 Sep 08, 2023 am 09:15 AM

從入門到精通:掌握is與where選擇器的使用技巧引言:在進行資料處理與分析的過程中,選擇器(selector)是一項非常重要的工具。透過選擇器,我們可以按照特定的條件從資料集中提取所需的資料。本文將介紹is和where選擇器的使用技巧,幫助讀者快速掌握這兩個選擇器的強大功能。一、is選擇器的使用is選擇器是一種基本的選擇器,它允許我們根據給定條件對資料集進

mysql left join的基本用法及on與where的差別是什麼 mysql left join的基本用法及on與where的差別是什麼 Jun 02, 2023 pm 11:54 PM

前言我們在寫sql語句的時候,總是無法避免使用到連接關鍵字,例如內連接、外連接。種類是很多的,我在這裡貼上一張在別處找到的圖:這張圖我認為是非常詳細了,它展示出了SQL語句中常見的鏈接類型,以本文中的leftjoin為例,網上是這麼給定義的:LEFTJOIN關鍵字會從左表傳回所有的行,即使在右表中沒有符合的行。其實光從字面意思上來說的話,leftjoin是比較好理解的,但是在使用的過程中,還是會有一些問題的,比如條件在on後面與在where後面,他們的結果是完全不一樣的,接下來我們就從淺到深

Laravel 集合中的 Where 方法用法解析 Laravel 集合中的 Where 方法用法解析 Mar 09, 2024 pm 06:51 PM

Laravel是一款受歡迎的PHP開發框架,它提供了豐富且便利的功能,其中集合(Collection)是Laravel中非常重要的資料結構之一。集合類別提供了許多強大的方法,其中一個常用的方法是where方法。本文將透過具體的程式碼範例來解析Laravel集合中的where方法用法。 1.建立集合首先,我們需要建立一個包含一些資料的集合。可以

Laravel中where方法的常見錯誤及解決方法 Laravel中where方法的常見錯誤及解決方法 Mar 10, 2024 pm 06:03 PM

Laravel中where方法的常見錯誤及解決方法在使用Laravel框架進行開發的過程中,我們經常使用到EloquentORM來操作資料庫。其中,where方法是一個非常常用的方法,用來篩選資料庫中的資料。然而,由於對Laravel框架不夠熟悉或對EloquentORM理解不深,很容易在使用where方法時出現一些常見的錯誤。本文將介紹幾種常見的w

SQL如何使用WHERE子句規定選擇的標準 SQL如何使用WHERE子句規定選擇的標準 Jun 03, 2023 pm 04:31 PM

SQLWHERE子句WHERE子句用來規定選擇的標準。如需有條件地從表格中選取數據,可將WHERE子句新增至SELECT語句。語法如下:SELECT欄位名稱FROM表名稱WHERE列運算子值下面的運算子可在WHERE子句中使用:=:等於:不等於>:大於=:大於等於1965

Laravel 集合的 Where 方法詳解 Laravel 集合的 Where 方法詳解 Mar 10, 2024 pm 01:33 PM

Laravel是一款流行的PHP框架,其集合(Collections)類別提供了強大的資料處理功能。其中,Where方法是集合類別中常用的方法之一,用於篩選符合條件的資料。本文將詳細介紹Laravel集合的Where方法,包括使用方法、參數意義以及具體的程式碼範例。一、Where方法概述Where方法用於篩選集合中符合指定條件的元素,並傳回一個

See all articles