Laravelまとめ

7487 ワード

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.取得器を使わずに時間を得る方法    小数を2桁保持します.
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  メソッドを使用して、2つのフィールドが等しいかどうかを確認します.
$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();