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操作方法

猜你喜欢

转载自blog.csdn.net/qq_37508554/article/details/79006893