下面都是项目中常用的查询方式,在官方文档上都有,主要是加入自己的想法,便于理解
latest最新的一条
Model::latest()->get(); |
检索某列
Model::pluck('name'); |
when 语法$a为真时执行第一条
when($a,function ($q){ return $q->orderBy('id', 'asc'); }, function ($q) use ($a){ return $q->orderBy($a, 'desc'); }); |
offset,limit (offset 设置从哪里开始,limit 设置想要查询多少条数据)
Model::offset(0)->limit(10)->latest()->get(); |
skip,take (sikip 跳过几条,take 取多少条数据)
Model::skip(3)->take(3)->get(); |
不能查找返回不重复的结果的,我们需要指定一下字段:
Model::select('name')->distinct()->get(); |
如果想要distinct多个字段,可以在select中添加字段名称;
但是要注意,当select多个字段,代表需要status与name都相同的才会被排除
Model::select('status','name')->distinct()->get(); |
一个查询构建器实例并且希望添加一个查询列到已存在的select
子句
$query = DB::table('users')->select('name'); $users = $query->addSelect('age')->get(); |
Updates/delete/insert
->update(array('votes' => 1)); |
->delete(); |
DB::table('users')->insert([ ['email' => 'taylor@example.com', 'votes' => 0], ['email' => 'dayle@example.com', 'votes' => 0] ]); 第二种 $user = new User(); $user->user = "张三丰"; $user->mobile = "183****8888"; $user->save; 这里可以取到添加的id $user->id |
这样获取刚刚添加的ID
$id = DB::table('users')->insertGetId( array('email' => 'john@example.com', 'votes' => 0) );
|
select
Model::where(name,'zhangsan')->first(); //查询单条 Model::where('id,>,0)->get(); // 查询所有 Model::all(); // 查询所有 ->toArray(); //查询数据以数组形式展示 |
查询表中的 字段 类型 备注
使用前需要先执行 composer require doctrine/dbal $columns = DB::getDoctrineSchemaManager()->listTableDetails($table); $comment=$type=$name=[]; foreach ($columns->getColumns() as $column) { $comment[] .= $column->getComment(); $type[] .= $column->getType()->getName(); $name[] .= $column->getName(); } |
获取库中所有的表名
$database 这个是库名 $conn = DB::connection($database); $cols = $conn->select("select table_name from information_schema.tables where table_schema='".$database."' "); 可以循环获取表中的详情 字段 类型 备注
foreach ($cols as $v){ $cols = $conn->select(" SHOW FULL FIELDS FROM `".$v->table_name."`"); } |
请勿转载