1. 程式人生 > >laravel中的sql語句集錦

laravel中的sql語句集錦

.laravel中的sql語句集錦
1.插入資料
(1) DB::table('user')->insert($data);
(2)插入資料同時返回自增id
DB::table('user')->insertGetId($data);
2.修改
DB::table('user')->where('id',1)->update($data);
3.刪除
DB::table('user')->where('id',1)->delete();
4.查詢一條資料
  $res = AdminuserModel::where('id',$id)->first();
$res = AdminuserModel::find($id);//查詢id=1的資料 $pay_data=Db::table('config')->find(1); 5.獲取所有資料 PriceModel::get();獲取price表中所有資料 6.where or .Where Between;Where Not Between (1)where $users = DB::table('users')->where('votes', '>', 100)->get(); (2)or $users = DB::table('users')->where('votes', '>', 100)->orWhere('name', 'John')->get();
(3)Where Between $users = DB::table('users')->whereBetween('votes', array(1, 100))->get(); (4)Where Not Between $users = DB::table('users')->whereNotBetween('votes', array(1, 100))->get(); (5)Where In $users = DB::table('users')->whereIn('id', array(1, 2, 3))->get(); $users = DB::table('users')->whereNotIn('id', array(1, 2, 3))->get();
(6)Order By, Group By, And Having $users = DB::table('users')->orderBy('name', 'desc')->groupBy('count')->having('count', '>', 100)->get(); (7)Offset & Limit $users = DB::table('users')->offset($offset)->limit(10)->get(); 二、連線 Joins 查詢構建器也可以用來編寫連線語句。看看下面的例子: Basic Join Statement 複製程式碼程式碼如下: DB::table('users')   ->join('contacts', 'users.id', '=', 'contacts.user_id')   ->join('orders', 'users.id', '=', 'orders.user_id')   ->select('users.id', 'contacts.phone', 'orders.price')   ->get(); 左連線語句 複製程式碼程式碼如下: DB::table('users')   ->leftJoin('posts', 'users.id', '=', 'posts.user_id')   ->get();   DB::table('users')   ->join('contacts', function($join)   {   $join->on('users.id', '=', 'contacts.user_id')->orOn(...);   })   ->get();   DB::table('users')   ->join('contacts', function($join)   {   $join->on('users.id', '=', 'contacts.user_id')   ->where('contacts.user_id', '>', 5);   })   ->get(); 三、request相關用法 1.取到單個值 $request->name;$request->input('name'); $request->input('name', 'Linda'); 沒有獲取到用預設值 2.取到所有值 $request->all(); 3.只取哪些值 $request->only(['age','name']); 4.取出除了這些鍵的值 $request->except('name'); 四、路由 //後臺登入和退出 Route::any('/login','[email protected]')->name('login'); Route::any('/loginout','[email protected]')->name('loginout'); Route::group(['middleware' => ['login']], function () {//後臺登入中介軟體 Route::any('/', '[email protected]')->name('index'); //使用者管理 Route::any('/admin/user/index','[email protected]'); }); // 匹配[]裡面的路由資訊 Route::match(['get', 'post','put'], '/getPost', function () { return 'Hello World'; }); //匹配任何一個 Route::any('foo', function () { return 'Hello World1'; }); 五、分組   有時候,您可能需要建立更高階的where子句,存在或巢狀引數分組。Laravel query builder可以處理這些: 複製程式碼程式碼如下: DB::table('users') ->where('name', '=', 'John') ->orWhere(function($query) { $query->where('votes', '>', 100) ->where('title', '<>', 'Admin'); }) ->get();   上面的查詢將產生以下SQL: 複製程式碼程式碼如下:   select * from users where name = 'John' or (votes > 100 and title <> 'Admin')   Exists Statements   DB::table('users')   ->whereExists(function($query)   {   $query->select(DB::raw(1))   ->from('orders')   ->whereRaw('orders.user_id = users.id');   })   ->get(); 上面的查詢將產生以下SQL: 複製程式碼程式碼如下: select * from userswhere exists ( select 1 from orders where orders.user_id = users.id ) 六、聚合 查詢構建器還提供了各種聚合方法,如統計,馬克斯,min,avg和總和。 Using Aggregate Methods 複製程式碼程式碼如下: $users = DB::table('users')->count(); $price = DB::table('orders')->max('price'); $price = DB::table('orders')->min('price'); $price = DB::table('orders')->avg('price'); $total = DB::table('users')->sum('votes'); Raw Expressions 有時您可能需要使用一個原始表示式的查詢。這些表示式將注入的查詢字串,所以小心不要建立任何SQL注入點!建立一個原始表示式,可以使用DB:rawmethod: Using A Raw Expression 複製程式碼程式碼如下: $users = DB::table('users') ->select(DB::raw('count(*) as user_count, status')) ->where('status', '<>', 1) ->groupBy('status') ->get(); 遞增或遞減一個列的值 複製程式碼程式碼如下: DB::table('users')->increment('votes'); DB::table('users')->increment('votes', 5); DB::table('users')->decrement('votes'); DB::table('users')->decrement('votes', 5);