ThinkPHP-SQL連貫操作

連貫入門(mén)

連貫操作使用起來(lái)非常簡(jiǎn)單盒卸,比如查找到id為1合武,2芹敌,3,4中按照創(chuàng)建時(shí)間的倒敘的前兩位伸头。
//示例
$user = M(' User ');
var_dump($user->where( ' id>1 ' )->order( ' date DESC ')->limit(2)->select());
PS:這里的where、order和limit方法都是連貫操作方法舷蟀、所以他們都能返回$user本身熊锭、可以呼喚位置、而select方法不是連貫方法雪侥、需要放在最后碗殷,用以顯示數(shù)據(jù)集。
//數(shù)組操作
$user = M('User');
var_dump($user->select(array('where'=>'id in (1,2,3,4)' , 'limit'=>'2' , 'order'=>'date DESC')));

//CURD處理(數(shù)據(jù)庫(kù)的增刪改查)速缨,CURD會(huì)在專(zhuān)門(mén)章節(jié)講解
$user = M('User');
var_dump($user->where('id=1')-finde());//不管什么情況只會(huì)查出一條數(shù)據(jù)锌妻。
var_dump($user->where('id=4')-delete());
系統(tǒng)支持的連貫方法
where  用于查詢(xún)或者更新條件的定義  字符串 數(shù)組和對(duì)象
table   用于定義要操作的數(shù)據(jù)表名稱(chēng)  字符串和數(shù)組
alias   用于給當(dāng)前數(shù)據(jù)表定義別名  字符串
data    用于新增或者更新數(shù)據(jù)之前的數(shù)據(jù)對(duì)象賦值   數(shù)組和對(duì)象
field   用于定義要查詢(xún)的字段   字符串和數(shù)組
order  用于對(duì)結(jié)果排序   字符串和數(shù)組
limit   用于限制查詢(xún)結(jié)果數(shù)量   字符串和數(shù)字
froup  用于對(duì)查詢(xún)的group支持   字符串
having   用于對(duì)查詢(xún)的having  字符串
join*   用于查詢(xún)的=====
union*  ======
distinct   用于查詢(xún)的distinct支持   布爾值
lock   用于數(shù)據(jù)庫(kù)的鎖機(jī)制    布爾值
cache   用于查詢(xún)緩存    支持多個(gè)參數(shù)
relation   用于關(guān)聯(lián)查詢(xún)(需要關(guān)聯(lián)模型支持)  字符串
result   用于返回?cái)?shù)據(jù)轉(zhuǎn)換    字符串
validate   用于數(shù)據(jù)自動(dòng)驗(yàn)證   數(shù)組
auto   用于數(shù)據(jù)自動(dòng)完成   數(shù)組
filter  用于數(shù)據(jù)過(guò)濾   字符串
scope*   用于命名范圍   字符串、數(shù)組
bind*   用于數(shù)據(jù)綁定操作   數(shù)組或多個(gè)參數(shù)
token  用于令牌驗(yàn)證   布爾值
comment  用于SQL注釋   字符串
PS:帶*好的可以多次調(diào)用旬牲。

連貫方法

1仿粹、where
where方法支持字符串條件搁吓、數(shù)組條件(推薦用法)和多次調(diào)用
//字符串方式
$user = M('User');
var_dump($user->where(' id=1 ')->select());

//索引數(shù)組方式
$user = M('User');
$map['id'] = 1;
var_dump($user->where($map)-select());

//多次調(diào)用方式
$user = M('User');
$map[' id '] = array('eq' , 1);
var_dump($user->where($map)->where(‘user = "蠟筆小新"’)->select());

2、order
order用于對(duì)結(jié)果集排序
//倒敘
$user = M('User');
$map['id'] = array(' eq ' , 1);
var_dump($user->order(‘id  desc’)-select());
PS:先按id倒敘吭历,再按email倒敘

//數(shù)組形式防止字段和mysql關(guān)鍵字沖突
$user = M('User');
$map['  id'] = array('eq' ,1);
var_dump($user->order(array('id'=>'DESC'))->select());

3堕仔、feild
feild方法可以返回或操作字段,可以用于查詢(xún)和寫(xiě)入操作
//只是顯示id和user兩個(gè)字段
$user = M('User');
var_dump($user->field('id , user')->select());

//使用SQL函數(shù)和別名
$user = M('User');
var_dump($user->field('SUM(id) as count , user')->select());//查出id的總和 變量名為count

//使用數(shù)組參數(shù)結(jié)合SQL函數(shù)
$user = M('User');
var_dump($user->field(arrat( ' ' id ' LEFT(user,3) ' =>' left_user '))->select());//別名可以用AS  也可以用=>

//獲取所有字段
$user = M('User');
var_dump($user->field()->select());

//用于寫(xiě)入
$user = M('User');
$user->field('user , email')->create();

 4晌区、limit
limit方法主要用于指定查詢(xún)和操作的數(shù)量
//限制結(jié)果集數(shù)量
$user = M('User');
var_dump($user->limit(2)->select());

//分頁(yè)查詢(xún)
$user = M('User');
var_dump($user->limit(0,2)-select());//從1開(kāi)始 2是數(shù)量

4摩骨、page
page方法完全用于分頁(yè)查詢(xún)
//page分頁(yè)
$user = M('User');
var_dump($user->page(1,2)->select());//從一開(kāi)始  2是條數(shù)

5、table
table方法用于數(shù)據(jù)表操作朗若,主要是切換數(shù)據(jù)表或多表操作
//切換數(shù)據(jù)表
$user->M('User');
var_dump($user->table(think_info)->select());//從user表切換到info表

//多表查詢(xún) 使用數(shù)組形式避免關(guān)鍵字沖突
$user = M('User');
var_dump($user->field('a.id , b.id')-table(array('think_user'=>'a' , 'think_inf'=>'b'))->select();

6恼五、alias
alias用于設(shè)置數(shù)據(jù)表別名
//設(shè)置別名
$user = M('User');
var_dump($user->alias('a')->select());//有助于雙表查詢(xún)用

7、group方法通常用于對(duì)結(jié)合函數(shù)統(tǒng)計(jì)的結(jié)果集進(jìn)行分組
//分組統(tǒng)計(jì)
$user = M('User');
var_dump($user->field('user,max(id)')->group('id')->select());

8哭懈、having方法一般用于配合group方法從分組的結(jié)果中再篩選數(shù)據(jù)灾馒。
//分組統(tǒng)計(jì)結(jié)合having
$user = M('User');
var_dump($user->field('user , max(id)')->group('id')->having('id>2')->select());

9、comment
comment方法用于對(duì)SQL語(yǔ)句進(jìn)行注釋
//SQL注釋
$user = M('User');
var_dump($user->comment('所有用戶(hù)')->select());

10遣总、join
join方法用于多表的鏈接查詢(xún)
//JOIN多表關(guān)聯(lián)睬罗,默認(rèn)是INNER IOIN
$user = M('User');
var_dump($user->join('think_user ON think_info.id = think_user.id')-select());

12、distinct
distinct方法用于返回唯一不同的值
//返回不重復(fù)的列
$user = M('User');
var_dump($user->distinct(true)->field('user')->select());

13旭斥、cache
cache用于檢查緩存操作
//查詢(xún)緩存傅物,第二次讀取緩存內(nèi)容
$user = M('User');
var_dump($user->cache(true)->select());

PS:第一次查詢(xún)數(shù)據(jù)庫(kù),第二次查詢(xún)相同的內(nèi)容直接調(diào)用緩存董饰,不用再查詢(xún)數(shù)據(jù)庫(kù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末圆米,一起剝皮案震驚了整個(gè)濱河市卒暂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌娄帖,老刑警劉巖也祠,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異近速,居然都是意外死亡诈嘿,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)削葱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)奖亚,“玉大人,你說(shuō)我怎么就攤上這事析砸∥糇郑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵首繁,是天一觀的道長(zhǎng)作郭。 經(jīng)常有香客問(wèn)我陨囊,道長(zhǎng),這世上最難降的妖魔是什么夹攒? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任蜘醋,我火速辦了婚禮,結(jié)果婚禮上咏尝,老公的妹妹穿的比我還像新娘压语。我一直安慰自己,他們只是感情好状土,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著伺糠,像睡著了一般蒙谓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上训桶,一...
    開(kāi)封第一講書(shū)人閱讀 52,262評(píng)論 1 308
  • 那天累驮,我揣著相機(jī)與錄音,去河邊找鬼舵揭。 笑死谤专,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的午绳。 我是一名探鬼主播置侍,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼拦焚!你這毒婦竟也來(lái)了蜡坊?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤赎败,失蹤者是張志新(化名)和其女友劉穎秕衙,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體僵刮,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡据忘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了搞糕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勇吊。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖窍仰,靈堂內(nèi)的尸體忽然破棺而出萧福,到底是詐尸還是另有隱情,我是刑警寧澤辈赋,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布鲫忍,位于F島的核電站膏燕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏悟民。R本人自食惡果不足惜坝辫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望射亏。 院中可真熱鬧近忙,春花似錦、人聲如沸智润。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)窟绷。三九已至锯玛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間兼蜈,已是汗流浹背攘残。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留为狸,地道東北人歼郭。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像辐棒,于是被迫代替她去往敵國(guó)和親病曾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,285評(píng)論 25 707
  • 1. 簡(jiǎn)介 1.1 什么是 MyBatis 漾根? MyBatis 是支持定制化 SQL知态、存儲(chǔ)過(guò)程以及高級(jí)映射的優(yōu)秀的...
    笨鳥(niǎo)慢飛閱讀 5,527評(píng)論 0 4
  • 第五項(xiàng)修煉负敏,彼得·圣 (新世紀(jì)最新擴(kuò)充修訂版) 2009中文序 領(lǐng)導(dǎo)人就是占據(jù)權(quán)位而自動(dòng)出現(xiàn)的;必須擁抱領(lǐng)導(dǎo)的“...
    際弋閱讀 3,737評(píng)論 1 38
  • 講述一個(gè)大學(xué)生迷迷糊糊的周末。 周六赁还,前一晚就說(shuō)好了早上去吃包子豆腐腦妖泄,當(dāng)八點(diǎn)的鬧鐘嗡嗡作響時(shí),毅然決然的將其關(guān)掉...
    歌詠今天閱讀 854評(píng)論 0 0
  • 喜歡作家筆下對(duì)美好事物的描述艘策,那美侖美奐的文字里蹈胡,有自然景色的美妙勝景,有人文精神的溫暖情懷。那些文章讓讀到它的人...
    淡泊寧?kù)o_5928閱讀 196評(píng)論 2 4