hyperf 数据库模型-常用语句

查询

use Hyperf\DbConnection\Db;

$users = Db::select('SELECT * FROM user;');
$users = Db::table('user')->get();
$users = Db::table('user')->select('name', 'age as user_age')->get();

 获取首行记录

$row = Db::table('user')->first(); // sql 会自动加上 limit 1

 获取单个字段

$id = Db::table('user')->where('id',1)->value('name');

 获取字段一列

$names = Db::table('user')->pluck('name');

 聚合查询

$count = Db::table('user')->count();
$max = Db::table('user')->max('age');
$min = Db::table('user')->min('age');
$avg = Db::table('user')->avg('age');
$sum = Db::table('user')->sum('age');

判断记录是否存在 

$bool = Db::table('user')->where('id',3)->exists();

表连接
inner join

$users = Db::table('user')
    ->join('orders', 'user.id', '=', 'orders.user_id')
    ->select('user.*', 'orders.price')
    ->get();

left join

$users = Db::table('user')
    ->leftJoin('orders', 'user.id', '=', 'orders.user_id')
    ->select('user.*', 'orders.price')
    ->get();

right join

$users = Db::table('user')
    ->rightJoin('orders', 'user.id', '=', 'orders.user_id')
    ->select('user.*', 'orders.price')
    ->get();

where语句

$users = Db::table('user')->where('id','=','1')->get();
$users = Db::table('user')->where('id',2)->get();
$users = Db::table('user')->where('id','>=',2)->get();
$users = Db::table('user')->where('id','<>',2)->get();
$users = Db::table('users')->where('name', 'like', 'H%')->get();
$users = Db::table('user')->where([['id','=','1'],['name','like','H%']])->get();

orWhere

$users = Db::table('user')->where('id',1)->orWhere('id',3)->get();

whereBetween

$users = Db::table('user')->whereBetween('id',[1,3])->get();

whereIn

$users = Db::table('user')->whereBetween('id',[1,3])->get();

whereNotIn

$users = Db::table('user')->whereNotIn('id',[1,3])->get();

orderBy

$users = Db::table('user')->orderBy('id','asc')->get();
$users = Db::table('user')->orderBy('id','desc')->get();

inRandomOrder 随机获取一条记录

$user = Db::table('user')->inRandomOrder()->first();

groupBy

$user = Db::table('user')->select('age',Db::raw('COUNT(0) AS `count`'))->groupBy('age')->get();

插入
插入单条记录

$bool = Db::table('user')->insert(
    ['name' => '胡勇健', 'age' => 30]
);


插入多条记录

$bool = Db::table('user')->insert([
    ['name' => 'huyongjian1', 'age' => 30],
    ['name' => 'huyongjian2','age'=>31]
    ]
);

更新
Db::table('user')->where('id', 5)->update(['name' => 'xiaoming']);

更新或者新增
Db::table('user')->updateOrInsert(['id'=>4],['name' => 'xiaoming','age'=>28]);

删除和清空
删除

Db::table('user')->delete();
Db::table('user')->where('id',  1)->delete();

清空表

Db::table('user')->truncate();

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值