DB门面-数据查询
1.1.1 查询所有数据
$selData = DB::table('article')->get();
1.1.2 单条件查询
#DB::table('表名')->where('字段','表达式','数据')->get();
$selData = DB::table('article')->where('id','=',10)->get();
1.1.3 多条件查询
#DB::table('表名')->where([[条件1],[条件2],[条件3]])->get();
$selData = DB::table('article')->where([['a_id','<',10],['a_title','like','%a%']])->get();
1.1.4 between区间查询+orderBy排序
#DB::table('表名')->whereBetween('字段',[起始范围,终止范围])->orderBy('字段','排序方式')->get();
$selData = DB::table('article')->whereBetween('a_id',[20,30])->orderBy('a_id','desc')->get();
1.1.5 orderBy排序+limit查询
#DB::table('表名')->orderBy('排序的字段','排序方式')->limit(条数)->get();
DB::table('article')->orderBy('a_id','desc')->limit(1)->get();
1.1.6 in和not in查询
#DB::table('表名')->whereIn('字段',[结果范围])->get();
DB::table('users')->whereIn('id', [1, 2, 3])->get(); #DB::table('表名')->whereNotIn('字段',[结果范围])->get();
DB::table('users')->whereNotIn('id', [1, 2, 3])->get(); 1.1.7 连接查询
#DB::table('主表名')->join('副表名','主表.关联字段','表达式','副表.关联字段')
$users = DB::table('users')
->join('contacts', 'users.id', '=', 'contacts.user_id')
->join('orders', 'users.id', '=', 'orders.user_id')
->select('users.*', 'contacts.phone', 'orders.price')
->get(); #DB::table('主表名')->leftJoin('副表名','主表.关联字段','表达式','副表.关联字段')
$users = DB::table('users')
->leftJoin('posts', 'users.id', '=', 'posts.user_id')
->get(); #DB::table('主表名')->rightJoin('副表名','主表.关联字段','表达式','副表.关联字段')
$users = DB::table('users')
->rightJoin('posts', 'users.id', '=', 'posts.user_id')
->get(); 1.1.8 子查询
#有时你可能需要构造一个 where 语句,将子查询的结果与一个给定值进行比较。这你可以通过给 where 方法传递一个闭包以及给定值实现。
#举例来说,下面的查询语句将会获取到所有属于最近一个会员类型的所有用户。
#whereColumn用于比较两个字段的值是否相等
$users = User::where(function ($query) {
$query->select('type')
->from('membership')
->whereColumn('user_id', 'users.id')
->orderByDesc('start_date')
->limit(1);
}, 'Pro')->get();
1.1.9 分组查询
#根据账户ID进行分组.并对分组之后的数据进行筛选,id大于100的数据
$users = DB::table('users')
->groupBy('account_id')
->having('account_id', '>', 100)
->get(); 1.1.1 聚合函数
#统计总用户量
$users = DB::table('users')->count(); #找出订单中价格最高的记录
$price = DB::table('orders')->max('price'); #查询以支付成功的订单平均价钱
$price = DB::table('orders')
->where('finalized', 1)
->avg('price');
更多查询方案
first取一条数据
find根据ID取一条数据
value从记录中获取单个值
pluck获取一列的值
select指定字段查询
orWhere或者
inRandomOrder方法被用来将结果随机排序
latest/oldest方法可以使你轻松地通过日期排序
whereColumn用于比较两个字段的值是否相等
DB门面-数据查询的更多相关文章
- DB门面,查询构建器,Eloquent ORM三者的CURD
一.DB门面 1.insert DB::insert('insert into table(`name`) value(?)', ['test']); 2.update DB::update('upd ...
- Laravel 数据库实例教程 —— 使用DB门面操作数据库
Laravel支持多种数据库,包括MySQL.Postgres.SQLite和SQL Server,在Laravel中连接数据库和查询数据库都非常简单,我们可以使用多种方式与数据库进行交互,包括原生S ...
- Yii2 数据查询
转载来自: http://www.yiichina.com/tutorial/95 数据查询 User::find()->all(); 此方法返回所有数据: User::findOne($id) ...
- MVC5 + EF6 + Bootstrap3 (10) 数据查询页面
文章来源:Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc5-ef6-bs3-get-started-search-page.html 系列教程:MVC ...
- 技术分享:如何用Solr搭建大数据查询平台
0×00 开头照例扯淡 自从各种脱裤门事件开始层出不穷,在下就学乖了,各个地方的密码全都改成不一样的,重要帐号的密码定期更换,生怕被人社出祖宗十八代的我,甚至开始用起了假名字,我给自己起一新网名”兴才 ...
- 我的EntityFramework(2):简单的数据查询
原文:我的EntityFramework(2):简单的数据查询 在上一篇博文中,已经搭建了基本的框架,接下来就进行简单的数据查询,这里主要用了Linq 常见的数据集查询 var companyList ...
- Mongodb DB shell数据操作
shell命令操作语法和JavaScript很类似,其实控制台底层的查询语句都是用JavaScript脚本完成操作的. Ø 数据库 1.Help查看命令提示 help db.help(); db.yo ...
- MongoDB源码分析——mongod数据查询操作
源码版本为MongoDB 2.6分支 Edit mongod数据查询操作 在mongod的初始化过程中说过,服务端接收到客户端消息后调用MyMessageHandler::process函数处理消息. ...
- ECMall关于数据查询缓存的问题
刚接触Ecmall的二次开发不久,接到一个任务.很常见的任务,主要是对数据库进行一些操作,其中查询的方法我写成这样: 01 function get_order_data($goods_id) 02 ...
随机推荐
- Redis实现延迟对列
一.应用场景: 订单超过 30 分钟未支付,则自动取消. 外卖商家超时未接单,则自动取消. 医生抢单电话点诊,超过 30 分钟未打电话,则自动退款.等等场景都可以用定时任务去轮询实现,但是当数据量过大 ...
- IOS scrollView 图片浏览
// // ViewController.m // 0426 // // Created by apple on 15/4/26. // Copyright (c) 2015年 gense. All ...
- css最终章之浮动、定位、溢出属性处理、z-index属性、透明度
上期内容回顾 CSS简介 # 主要就是给HTML标签添加样式 # 固定语法结构 选择器 {属性名1:属性值;属性名2:属性值} 三种引用方式 1.link标签引入外部css文件(最正规) 2.HTML ...
- Java中的多线程你只要看这一篇就够了(引用)
引 如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个 ...
- 《PHP程序员面试笔试宝典》——如何进行自我介绍?
本文摘自<PHP程序员面试笔试宝典> PHP面试技巧分享,PHP面试题,PHP宝典尽在"琉忆编程库". 自我介绍是面试中至关重要的一个步骤,很多面试官对求职者提出的第一 ...
- windows gdi+ Bitmap 总结
windows gdi+ 是对 windows gdi 的一个c++封装,同时增加了一些扩展功能,如反走样,样条曲线,变换矩阵,图像编解码等. gdi+ 相对于 gdi 也存在一些不足之处,如 执行效 ...
- Solution -「CF 804F」Fake bullions
\(\mathcal{Description}\) Link. 给定 \(n\) 个点的竞赛图,第 \(i\) 个点代表了 \(s_i\) 个人,每个人(0-based)可能有真金条.此后在 ...
- suse 12 二进制部署 Kubernetets 1.19.7 - 第10章 - 部署kube-proxy组件
文章目录 1.10.部署kube-proxy 1.10.0.创建kube-proxy证书 1.10.1.生成kube-proxy证书和秘钥 1.10.2.创建kube-proxy的kubeconfig ...
- ACM对抗赛有感
2022.2.22 一个有"爱"的日子,注定不会平凡(对于24oier来说),原因是gg让我们参加与大连理工大学的对抗赛. 为此队友都准备好各种板子,上了比赛才发现根本没有 可怜了 ...
- Java的Future接口
Java的Future接口 Java 中的 Future 接口和其实现类 FutureTask,代表了异步计算的结果. 1. Future接口简介 Future 是异步计算结果的容器接口,它提供了下面 ...