1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Laravel学习记录--查询构造器

Laravel学习记录--查询构造器

时间:2023-05-19 23:19:30

相关推荐

Laravel学习记录--查询构造器

查询

1.获取单列数据 first() //返回对象的结果集

$res=DB::table('book')->where('bname','数学')->first();

2.获取具体字段值value() value必须指定值 //返回字符串

例:

$res = DB::table('book')->where('bname','数学')->value('bname');

3.获取一列的值 pluck() //pluck 必须指定值 //返回对象的数组 最多查询两个字段 以键值方式显示

$res = DB::table('book')->pluck('tid','test','bname');

常用聚合函数

1.统计

例:

$res = DB::table('book')->count('bid');

2.指定查询的字段

get()方法 返回对象的数组

例:

$res = DB::table('book')->select('bname','bid')->get();

3.查询不重复结果(这里好像有点问题)

distinct() 方法

例:

$res = DB::table('book')->distinct()->get();

在已存在的查询添加查询

$res = DB::table('book')->select('bname');$res = $res->addSelect('bid','tid')->get();

4.执行原生查询 //返回对象的数组

例:

$res = DB::select('select* from book')

对查询构造器加入原生查询

a.使用selectRaw 查询

b.使用whereRaw 条件

c.使用havingRaw

$res = DB::table('book')->selectRaw('bname as title')->groupBy('bid')->havingRaw('bid>1')->get();

连接查询

1.基本格式

DB::table(‘表1’)

->join(‘表2’,‘表1字段’,’=’,‘表2字段’)

->join(‘表3’,‘表1/表2字段’,’=’,‘表3字段’)

2.左右链接同理

$res = DB::table('book')->join('teacher','book.tid','=','teacher.tid')->join('zhichen','teacher.zid','=','zhichen.zid')->where('book.tid',2)->get();

联合查询

1.联合查询必须保证字段相同

$res1 = DB::table('book')->whereNull('bname');$res = DB::table('test')->unionall($res1)->get();

where语句

1.orWhere() 或者…

2.whereBetween(‘字段’,[范围区间]) 判断字段是否介于范围区间

例:whereBetween('age',[1,100])

3.whereNotBetween(‘字段’,[范围区间]) 判断字段不在两值之间

4.whereIn(‘字段’,[‘可选值’]) 判断字段是否在数组内

5.whereNotIn(‘字段’,[‘可选值’]) 判断指定不在数组内

6.whereNull 验证字段值为空

7.whereNotNull 验证字段不为空

8.whereDate(‘字段’,‘-9-9’) 比较字段的值和日期

9.whereMonth(‘字段’,‘月份’) 比较字段月份

10.whereDay(‘字段’,‘天’) 比较某一天

11.whereYear(‘字段’,‘年’) 比较年

12.whereTime(‘字段’,’=’,‘时间’) 比较特定时间

13.whereColumn(‘字段1’,‘字段2’) 比较两个字段是否相等

orderby语句

//orderBy(‘name’,‘desc/asc’)

latest() 和 oldest() 方法允许你轻松地按日期对查询结果排序。默认情况下是对 created_at 字段进行排序。

//inRandomOrder():将查询结果随机排序 可用于随机取人

分组groupBy

groupBy('字段')having('tid','>' ,100)//条件

多个分组

groupBy('字段','字段2')having('条件')

限制查询

skip(n)指定跳过查询中给定的数量的结果

take(n)指定取查询的几条结果

两个联合使用 案例 跳过3个取两个

DB::table('book')->skip(3)->take(2)->get()

limit/offset相当于 原生sql “limit start(offset) length(limit)

插入insert

先设置fillable的允许批量添加的值

插入单行

DB::table('book')->insert('key'=>'value',....)

插入多行

insert([['email'=>'df']['email'=>'ds']])

插入时获取自增id

DB::table()->insertGetId(['key'=>'value'])//只能插入一个值

更新update

update(['key'=>'value'])

字段自增&自减

DB::table()->increment('字段');//默认加1DB::table()->increment('字段',3);//指定加3DB::table()->decrement()//同理

指定条件自增

increment('字段',step,['条件'])

删除delete

->where()->delete()

清理数据表

DB::table()->truncate()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。