检索一个列值列表
DB::table("tablename")->lists('mobile'); //5.3 及以上版本 lists 改为 pluck
返回
[
"13455556666",
"13455556667",
"13455556668",
"13455556669",
]
指定一个自定义的键列返回的数组
\DB::table('tablename')->lists('mobile','email');
返回
[
"aa@sina.com"=>"13022223335",
"bb@sina.com"=>"13022223336",
"cc@sina.com"=>"13022223337",
]
检索表中的所有行

$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);
检索单行单列--返回指定字段
DB::table('users')->where('name', 'John')->pluck('name');
返回数组 非字符串
["Jone"] 并不是返回 "Jone"
指定一个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();
where

$users = DB::table('users')->where('votes', '>', 100)->get();
$users = DB::table('users')->where(['votes'=>100,'name'=>'zhangsan'])->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')->where('parent_id',1)->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
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();
//on 多个条件
DB::table('users')
  ->join('contacts', function($join)
  {
  $join->on('users.id', '=', 'contacts.user_id')->on(...);
  })
->get();
DB::table('users')   ->join('contacts', function($join)   {   $join->on('users.id', '=', 'contacts.user_id')   ->where('contacts.user_id', '>', 5);   })   ->get();
聚合
$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');
递增或递减一个列的值
DB::table('users')->increment('votes');
DB::table('users')->increment('votes', 5);
DB::table('users')->decrement('votes');
DB::table('users')->decrement('votes', 5);
指定额外的列更新
DB::table('users')->increment('votes', 1, array('name' => 'John'));
Inserts

DB::table('users')->insert(
array('email' => 'john@example.com', 'votes' => 0)
); $id = DB::table('users')->insertGetId(
array('email' => 'john@example.com', 'votes' => 0)
); 多个记录插入到表中 DB::table('users')->insert(array(
array('email' => 'taylor@example.com', 'votes' => 0),
array('email' => 'dayle@example.com', 'votes' => 0),
));
Updates
DB::table('users')
->where('id', 1)
->update(array('votes' => 1));
Deletes
删除表中的记录 DB::table('users')->where('votes', '<', 100)->delete(); 删除表中的所有记录 DB::table('users')->delete(); 清空一个表 DB::table('users')->truncate();
共享锁
DB::table('users')->where('votes', '>',
100)->sharedLock()->get(); 更新“锁”
DB::table('users')->where('votes', '>', 100)->lockForUpdate()->get();
\DB::connection()->getPdo()->exec($sql)
事务 使用匿名函数 任何一个异常都会触发回滚

        return \DB::transaction(function() use($user_params, $staff_params) {
//写管理员进入user表
$user_id = DB::table(User::TABLE_NAME)
->insertGetId($user_params);
if(!$user_id) throw new Exception("写入user表失败"); $staff_params[Staff::DB_FIELD_USER_ID] = $user_id;
$staff_id=DB::table(Staff::TABLE_NAME)
->insertGetId($staff_params);
if(!$staff_id) throw new Exception("写入staff表失败"); return $staff_id;
});
直接使用语句
$ret = DB::select("select * from tablename where id=123"); //返回一个二维数组
或者
$ret = DB::select("select * from tablename where id=?",[123]); //返回一个二维数组
使用命名绑定来执行查询
$results = DB::select('select * from users where id = :id', ['id' => 1]);

DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);
$affected = DB::update('update users set votes = 100 where name = ?', ['John']);
 
$deleted = DB::delete('delete from users');
DB::statement('drop table users');
 
//chunk()每次查n条
$student=DB::table("vipinfo")->chunk(2,function($students){ //每次查2条
var_dump($students);
if(.......) return false; //在满足某个条件下使用return就不会再往下查了
});
打印sql
\DB::connection()->enableQueryLog();#开启log
$aa = \DB::table(tablename)->first();
$log = \DB::getQueryLog();
dd($log);
//打印
array: [
=> array: [
"query" => "select * from `fuli_xwc_merchant` limit 1"
"bindings" => []
"time" => 29.27
]
]
手动使用事务

如果你想要手动开始事务从而对回滚和提交有一个完整的控制,可以使用 DB 门面的beginTransaction 方法:

DB::beginTransaction();
你可以通过 rollBack 方法回滚事务: DB::rollBack();
最后,你可以通过 commit 方法提交事务: DB::commit();
注意:使用 DB 门面的事务方法还可以用于控制查询构建器和 Eloquent ORM 的事务。

like

$users = DB::table('users')
->where('name', 'like', 'T%')
->get();
$users = DB::table('users')
->where('votes', '>=', 100)
->get(); $users = DB::table('users')
->where('votes', '<>', 100)
->get(); $users = DB::table('users')->where([
['status', '=', '1'],
['subscribed', '<>', '1'],
])->get();
$users = DB::table('users')
->where('votes', '>', 100)
->orWhere('name', 'John')
->get();
$users = DB::table('users')
->whereBetween('votes', [1, 100])->get();

  null

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

  从一张表中获取一行/一列

$user = DB::table('users')->where('name', 'John')->first();
echo $user->name;//该方法将会返回单个 StdClass 对象: $email = DB::table('users')->where('name', 'John')->value('email');

DB:raw

\DB::table(\DB::raw("xl_channel_goods as a"))
->whereIn(ChannelGood::DB_FIELD_CHANNEL_GOODS_CODE, $codes)
->get([
'a.*',
\DB::raw("(select goods_name from xl_goods as b where a.goods_sn=b.goods_sn) as goods_name"),
\DB::raw("(select group_concat(upc) from xl_goods_upc as c where a.goods_sn=c.goods_sn group by c.goods_sn) as upc")
]);

  

最新文章

  1. 记一次使用 android 自带 WebView 做富文本编辑器之API、机型的兼容及各种奇葩bug的解决
  2. Android爬坑之路
  3. $.ajax()方法所有参数详解;$.get(),$.post(),$.getJSON(),$.ajax()详解
  4. goldengate 12c 针对oracle 12c配置的主要变化
  5. 怎么提高OCR文字识别软件的识别正确率
  6. thymeleaf条件表达式
  7. Ember.js demo7
  8. Effective C++ 第二版 5)new和delete形式 6) 析构函数里的delete
  9. 轻松实现HTML5时钟(分享下自己对canvas的理解,原来没你想像的那么难哦)
  10. H面试程序(29):求最大递增数
  11. 网络资源(9) - TDD视频
  12. C控制语句:循环
  13. JavaScript(第九天)【正则表达式】
  14. The type org.apache.http.HttpResponse cannot be resolved. It is indirectly referenced from required
  15. 社区发现算法 - Fast Unfolding(Louvian)算法初探
  16. Vue.js的安装及简单使用
  17. windows7 ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
  18. Delphi Excel导入 的通用程序转载
  19. QWidget窗体中使用Q_OBJECT后无法添加背景图片或背景色
  20. loadrunner12-运行报错原因及解决办法整理集合

热门文章

  1. @private、@protected与@public三者之间的区别
  2. 解决UITableView在iOS7中UINavigationController里的顶部留白问题
  3. 绛河 初识WCF4
  4. symfony学习笔记2—纯的PHP代码和symfony的区别
  5. mysql 注入基础知识
  6. CORS (Cross Origin Resources Share) 跨域
  7. Weblogic web应用中获取文件的绝对路径
  8. python第六课——判断结构
  9. BZOJ3052:[WC2013]糖果公园(树上莫队)
  10. 红米5/红米5 Plus逼出最强魅蓝Note6?降价后已成性价比神机