天天看点

laravel-sql下面都是项目中常用的查询方式,在官方文档上都有,主要是加入自己的想法,便于理解

下面都是项目中常用的查询方式,在官方文档上都有,主要是加入自己的想法,便于理解

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' => '[email protected]', 'votes' => 0],

    ['email' => '[email protected]', 'votes' => 0]

]);

第二种

$user = new User();

$user->user = "张三丰";

$user->mobile = "183****8888";

$user->save;

这里可以取到添加的id   $user->id

这样获取刚刚添加的ID

$id = DB::table('users')->insertGetId(

array('email' => '[email protected]', '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."`");
}      

请勿转载