1. 程式人生 > >Thinkphp連貫操作(tp3.2.3)

Thinkphp連貫操作(tp3.2.3)

group

GROUP,通常用於結合合計函式,根據一個或多個列對結果集進行分組

group方法只有一個引數,並且只能使用字串

Group通常與合計函式一起使用count()對具有相同屬性值的資料實現分組,比如男生,女生;數學,英語可以分為不同的組,    通常用於實現對每個組計算總數、

having

 HAVING,用於配合group方法完成從分組的結果中篩選(通常是聚合條件)資料

 having方法只有一個引數,並且只能使用字串

 Having與where的異同點

         [1]having與where類似,可以篩選資料,where後的表示式怎麼寫,having後就怎麼寫

         [2]能用where的地方也能用having,用having的地方不一定能用where

    舉例:

       SELECT sid,maths,chinese,ABS(chinese-maths)AS  bk score WHERE bk>30
                  mysql返回:Unknown column 'bk' in 'where clause';

此時如果用having就可以達到目的,having語句中可以使用定義的別名,然而where語句只能是根據表中的列發揮作用

Join

JOIN,用於根據兩個或多個表中的列之間的關係,從這些表中查詢資料

INNERJOIN:等同於JOIN(預設的JOIN型別),如果表中有至少一個匹配,則返回行(有匹配才返回)
           LEFTJOIN:即使右表中沒有匹配,也從左表返回所有的行
           RIGHTJOIN:即使左表中沒有匹配,也從右表返回所有的行
           FULLJOIN:只要其中一個表中存在匹配,就返回行(有對應,就會對應輸出,沒有對應的,也會輸出,但是該對應出會空出)

distinct

DISTINCT 方法用於返回唯一不同的值

distinct方法的引數是一個布林值

Distinct(bool)

Distinct(bool)用於限定sql語句查詢的結果個數,bool值為true時,限定為 唯一值,不寫distinct(bool)語句則預設      bool=false(不限制查詢結果)

cache

cache方法用於查詢快取操作,也是連貫操作方法之一。

cache可以用於select、find和getField 方法,以及其衍生方法,使用cache方法後,在快取有效期之內不會再次進行資料庫查詢操作,而是直接獲取快取中的資料,關於資料快取的型別和設定可以參考快取部分

cache理解可以類似於Runtime,cookie,就是一種快取,第一次查詢之後存在一個地方,下次查詢同一個值時(如果相同操作,資料庫被改變也會顯示上次查詢的值)

優點:在不改變資料庫的情況下,進行相同操作,會直接從cache中取值,效率更高

fetchSql

 fetchSql用於直接返回SQL語句而不是執行查詢,適用於任何的CURD操作方法