TP5.1 数据库查询汇总

本文总结了ThinkPHP5.1框架中的数据库查询操作,包括简单查询、连表查询、原生SQL查询及各种条件应用。如字段自增、自减,根据字段排序和分组,数据转换为数组,计数和限制返回条数等。同时提到了高级查询的官方手册资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一类查询:简单查询,无链接

$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完全开发手册 · 看云(官方手册,最为省力)

注:以上除了第三类查询之外,所有表名均是去除前缀之后的表名(其实加不加后缀,试试就会知道,万事没有绝对)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值