Laravel框架数据库CURD操作、连贯操作总结

检索表中的所有行

复制代码 代码如下:


$users = DB::table('users')->get();
foreach ($users as $user)
{
var_dump($user->name);
}

从表检索单个行

复制代码 代码如下:


$user = DB::table('users')->where('name', 'John')->first();
var_dump($user->name);


检索单个列的行

复制代码 代码如下:


$name = DB::table('users')->where('name', 'John')->pluck('name');


检索一个列值列表

复制代码 代码如下:


$roles = DB::table('roles')->lists('title');


该方法将返回一个数组标题的作用。你也可以指定一个自定义的键列返回的数组

复制代码 代码如下:


$roles = DB::table('roles')->lists('title', 'name');


指定一个Select子句

复制代码 代码如下:


$users = DB::table('users')->select('name', 'email')->get();
 $users = DB::table('users')->distinct()->get();
 $users = DB::table('users')->select('name as user_name')->get();

Select子句添加到一个现有的查询$query = DB::table('users')->select('name');

复制代码 代码如下:


$users = $query->addSelect('age')->get();

where

复制代码 代码如下:


$users = DB::table('users')->where('votes', '>', 100)->get();

OR

复制代码 代码如下:


$users = DB::table('users')->where('votes', '>', 100)->orWhere('name', 'John')->get();

Where Between

复制代码 代码如下:


$users = DB::table('users')->whereBetween('votes', array(1, 100))->get();

Where Not Between

复制代码 代码如下:


$users = DB::table('users')->whereNotBetween('votes', array(1, 100))->get();

Where In With An Array

复制代码 代码如下:


$users = DB::table('users')->whereIn('id', array(1, 2, 3))->get();
$users = DB::table('users')->whereNotIn('id', array(1, 2, 3))->get();

Using Where Null To Find Records With Unset Values

复制代码 代码如下:


$users = DB::table('users')->whereNull('updated_at')->get();

Order By, Group By, And Having

复制代码 代码如下:


$users = DB::table('users')->orderBy('name', 'desc')->groupBy('count')->having('count', '>', 100)->get();

Offset & Limit

复制代码 代码如下:


$users = DB::table('users')->skip(10)->take(5)->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();

三、分组

  有时候,您可能需要创建更高级的where子句,如“存在”或嵌套参数分组。Laravel query builder可以处理这些:

复制代码 代码如下:


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


  上面的查询将产生以下SQL:

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/74b1a4f3988a5f2ef543e45fe3cbb461.html