第一类查询:简单查询,无链接
$where['字段名']='查询值'(等于);
$where['字段名']=['in',查询数组];
$where['字段名']=['like','%匹配字符串%'];
$where['字段名']=['is','NULL'];
$where['字段名']=['between','1,3'];
$need=Db::name('表名')/model("表名");
->field('字段名1,字段名2,distinct 去重查询字段名,COUN(计算总数:1:字段名)')
->where($where)
->select()/查询单条:->find();
第二类查询:连表查询
$where['字段名']='查询值'(等于);
$where['字段名']=['in',查询数组];
$where['字段名']=['like','%匹配字符串%'];
$where['字段名']=['is','NULL'];
$need=Db::name('表名:如dbnameone')/model("表名");
->alias('主表别名:dbone')
->join('连表名:dbnametwo 连表别名:dbtwo','连接条件,如:dbone.id=dbtwo.dbone_id','LEFT/RIGHT:可不填,默认INNER JOIN')
->field('字段名1,字段名2,distinct 去重查询字段名,COUN(计算总数:1:字段名)')->where($where)->select();(查询单条:->find())
第三类查询:原生sql查询
$sort = db()->query("SELECT COUNT(1) AS cnt FROM bigexp_meeting AS meet JOIN bigexp_guest AS guest ON guest.id = meet.guest_id WHERE meet.is_able=1 AND meet.meeting_id='".$val['detail_id']."' AND (guest.field_type = '' or guest.field_type = '其它' or guest.field_type is NULL) LIMIT 1");
第四类查询:字段自增、自减(用的时候一定要加条件)
$need=Db::table('表名')->setInc('自增字段',5);//自己用的时候记得加上条件
$need=Db::table('表名')->setDec('自减字段',5);
tp条件查询应用实例
根据字段排序查询:order('字段名',‘DESC(降序)|ASC(增序)’)
$need=Db::name('表名:如dbnameone')->order('排序字段 ASC/DESC')->select();
根据字段分组:group(‘字段名’),一般用于查询某个字段为同一值的数据总条数,更多应用看自己怎么开发
$need=Db::name('表名:如dbnameone')->field('分组字段',count(*) as '你起的别名')->group('分组字段')->select();
将查询到的对象转化为数组:toArray();
$need=Db::name('表名:如dbnameone')->field('分组字段',count(*) as '你起的别名')->group('分组字段')->select()->toArray();
获得总数:count()
$need=Db::name('表名:如dbnameone')->field('分组字段',count(*) as '你起的别名')->group('分组字段')->count();
获取中间某些值:limit()
$need=Db::name('表名:如dbnameone')->field('分组字段',count(*) as '你起的别名')->group('分组字段')->limit(开始获取位置,0是第一条,获取数据条数)->select();
其他高级查询:高级查询 · ThinkPHP5.0完全开发手册 · 看云(官方手册,最为省力)
注:以上除了第三类查询之外,所有表名均是去除前缀之后的表名(其实加不加后缀,试试就会知道,万事没有绝对)