laravel 总结

1.常用的where查询,经常使用闭包来查询 不确定的的数据

DB::table('users')->where('name', '=', 'John')
            ->orWhere($role, function ($query) {
                $query->where('votes', '>', 100)
                      ->where('title', '<>', 'Admin');
            })

2.where 直接  条件

->whereRaw('price > IF(state = "TX", ?, 100)', [200])

3.如何不使用获取器,得到时间    和保留两位小数.

Send::from('hb_send as s')
                ->join('hb_received as r', 's.pass_id', '=', 'r.redpack_id')
                ->where(array('r.status' => 1,'r.open_id' => $this->_open_id))
                ->select('r.redpack_id','r.id as rece_id','s.id as send_id',  'r.red_type','s.pass_id','s.is_square',
                    (DB::raw("FROM_UNIXTIME(r.add_time,'%Y-%m-%d %H:%i:%s') as add_time")),
                    (DB::raw("Convert(r.money,decimal(10,2)) as money"))
                )
                ->orderBy('r.add_time', 'desc')
                ->paginate(10);

4.whereNotNull 方法验证字段的值不为 NULL

 ->whereNotNull('updated_at')
                    ->get();

5.whereColumn 方法用于验证两个字段是否相等:

$users = DB::table('users')
                ->whereColumn('first_name', 'last_name')
                ->get();
6.whereExists 方法允许你编写 where exists SQL 语句。 该 whereExists 方法接受一个 Closure 参数,该闭包获取一个查询构建器实例从而允许你定义放置在 "exists" 字句中查询:
DB::table('users')
            ->whereExists(function ($query) {
                $query->select(DB::raw(1))
                      ->from('orders')
                      ->whereRaw('orders.user_id = users.id');
            })
            ->get();

insertGetId 方法将默认把 id 作为自动递增字段的名称。如果数据表有自增ID,使用 insertGetId 方法来插入记录并返回ID值

$id = DB::table('users')->insertGetId(
    ['email' => '[email protected]', 'votes' => 0]
);
查询构造器也包含一些可以帮助你在 select 语法上实现 「悲观锁定」的函数。若想在查询中实现一个「共享锁」,你可以使用 sharedLock 方法。共享锁可防止选中的数据列被篡改,直到事务被提交为止 :
 
 
DB::table('users')->where('votes', '>', 100)->sharedLock()->get();
另外,你也可以使用  lockForUpdate  方法。使用「更新」锁可避免行被其它共享锁修改或选取:
DB::table('users')->where('votes', '>', 100)->lockForUpdate()->get();






猜你喜欢

转载自blog.csdn.net/qq874039013/article/details/80584156