十四、PHP框架Laravel学习笔记——构造器的排序分组、子查询

一.排序分组

  1. 使用 whereColumn()方法实现两个字段相等的查询结果;
//判断两个相等的字段,同样支持 orWhereColumn() 
//支持符号'create_time','>', 'update_time' 
//支持符号支持数组多个字段格式['create_time','>', 'update_time'] 
$users = DB::table('users') ->whereColumn('create_time', 'update_time') ->get(); 

在这里插入图片描述
在这里插入图片描述

  1. 使用 orderBy()方法实现 desc 或 asc 排序功能。
 //支持 orderByRaw 和 orderByDesc 倒序方法 $users = DB::table('users') ->orderBy('id', 'desc') ->get(); 

在这里插入图片描述

  1. 使用 latest()方法设置时间倒序来排,默认时间字段是 created_at;
//按照创建时间倒序排,默认字段 created_at 
$users = DB::table('users')->latest('create_time')->toSql(); 

在这里插入图片描述

  1. 使用 inRandomOrder()方法来随机排序,得到一个随机列表;
//随机排序 
$users = DB::table('users')->inRandomOrder()->get(); 

在这里插入图片描述

  1. 使用 skip()和 take()限制结果集,或使用 offset()和 limit();
//从第 3 条开始,显示 3 条 
$users = DB::table('users')->skip(2)->take(3)->toSql(); 
$users = DB::table('users')->offset(2)->limit(3)->get(); 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 使用 when()方法可以设置条件选择,执行相应的 SQL 语句;
//when 实现条件选择 
$users = DB::table('users')->when(true, function ($query) { $query->where('id', 19); }, function ($query) { $query->where('username', '辉夜'); })->get();

在这里插入图片描述
在这里插入图片描述

  1. 如果 MySQL 在 5.7+,有支持 JSON 数据的新特性;
$users = DB::table('users')->where('list->id', 19)->first(); 

在这里插入图片描述
在这里插入图片描述

二.子查询

  1. 使用 whereExists()方法实现一个子查询结果,返回相应的主查询;
//通过 books 表数据,查询到 users 表关联的所有用户 
$users = DB::table('users')->whereExists(function ($query) { $query->selectRaw(1) ->from('books') ->whereRaw('laravel_books.user_id = laravel_users.id'); })->toSql(); 

在这里插入图片描述

//whereRaw 这句也可以替代为:
whereColumn('books.user_id','users.id'); 

PS:select 1 from,一般用于子查询的手段,目的是减少开销,提升效率,深入请搜索;
在这里插入图片描述
在这里插入图片描述

  1. 也可以使用 where(字段,function())闭包,来实现一个子查询;
    (此处有错误!!!)
//id=子查询返回的 user_id 
$users = DB::table('users')->where('id', function ($query) { $query->select('user_id') ->from('books') ->whereColumn('books.user_id','users.id'); })->toSql();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470580.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python找不到文件怎么办_python open找不到文件怎么办?

推荐教程:《python视频教程》 python open找不到文件怎么办? python open找不到文件的解决办法: 在python和很多程序语言中"\"转义符号,要想输出\有两种方法,一是多加一个\写成\\ ,一是在字符串前加一个r,提…

css:蓝环章鱼

css&#xff1a;蓝环章鱼 许多海洋生物色彩艳丽&#xff0c;这次用css仿制一下蓝环章鱼的蓝环 <script type"text/javascript" src"http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script> <script type"text/javascript&quo…

论文阅读 - Jukebox: A Generative Model for Music

文章目录1 概述2 什么是VQ-VAE2.1 Auto-encoder(AE)2.2 Variational AutoEncoder(VAE)2.3 Vector-Quantized Variational AutoEncoder(VQ-VAE)2.4 VQ-VAE-23 Music VQ-VAE4 Prior and upsamplers5 Lyrics Conditioning参考文献By learning to produce the data, we can learn t…

十五、PHP框架Laravel学习笔记——构造器的 join 查询

一&#xff0e;join 查询 使用 join 实现内联接的多表查询&#xff0c;比如三张表进行 inner join 查询&#xff1b; $users DB::table(users) ->join(books, users.id, , books.user_id) ->join(profiles, users.id, , profiles.user_id) ->select(users.id, user…

论文阅读 - Group Normalization

文章目录1 概述2 几种normalization的方法2.1 Batch Norm2.2 Layer Norm2.3 Instance Norm2.4 Group Norm3 效果对比参考文献1 概述 Group Nomralization的提出是为了解决一张GPU上能容纳的batch_size很小&#xff0c;导致模型训练效果显著变差的问题。随着深度学习的快速发展…

十六、PHP框架Laravel学习笔记——构造器的增删改

一&#xff0e;增删改操作 使用 insert()方法可以新增一条或多条记录&#xff1b; //新增一条记录 DB::table(users)->insert([ username > 李白, password > 123456, email > libai163.com, details > 123 ]); //新增多条记录 DB::table(users)->insert…

git如何切换分支_拜托,不要再问我Git分支如何使用

今天来讲讲我使用Git分支的一些经验&#xff0c;记录一下&#xff0c;希望对大家有帮助。阐述在平常开发中&#xff0c;一般都会对应三种环境&#xff0c;本地环境、测试环境、线上环境。开发的基本流程都是先在本地环境开发好,再把代码发布到测试环境测试&#xff0c;最后再发…

搞懂HMM

文章目录1 概述2 符号说明3 两点假设4 Evaluation4.1 前向算法&#xff08;forward algorithm&#xff09;4.2 后向算法&#xff08;backward algorithm&#xff09;5 Learning6 Decoding参考资料1 概述 本文是B站上机器学习-白板推导系列(十四)-隐马尔可夫模型HMM的学习笔记&…

书店售书最低价格问题

书店针对《哈利波特》系列书籍进行促销活动&#xff0c;一共5卷&#xff0c;用编号0、1、2、3、4表示&#xff0c;单独一卷售价8元&#xff0c; 具体折扣如下所示&#xff1a;本数 折扣 2 5% 3 10% 4 …

十七、PHP框架Laravel学习笔记——模型的定义

一&#xff0e;默认设置 框架可以使用 Eloquent ORM 进行数据库交互&#xff0c;也就是关系对象模型&#xff1b; 在数据库入门阶段&#xff0c;我们已经创建了一个 User.php 模型&#xff0c;如下&#xff1a; php artisan make:model Http/Models/User //默认在 app 目录 …

centos 启动一个redis_基于prometheus+grafana体系监控redis缓存服务

概述前面已经介绍了怎么用prometheus监控mysql数据库&#xff0c;今天主要分享下怎么去监控redis服务。由于没有redis环境&#xff0c;所以用docker模拟了一下。一、Docker部署1、下载sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.…

十八、PHP框架Laravel学习笔记——模型的增删改

一&#xff0e;增删改操作 新增方法如下&#xff0c;注意&#xff1a;默认模型接管 created_at 和 updated_at&#xff1b; $users new User(); $users->username 辉夜; $users->password 123; $users->email huiye163.com; $users->details 123; $use…

搞懂语音去噪

文章目录1 概述2 传统语音去噪2.1 谱减法2.2 维纳滤波法3 深度语音去噪参考资料1 概述 语音去噪(noise reduction)又被称为语音增强(speech enhancement)&#xff0c;主要是针对于有人声的音频进行处理&#xff0c;目的是去除那些背景噪声&#xff0c;增强音频中人声的可懂性(…

软件架构设计案例_透过现象看本质:常见的前端架构风格和案例

所谓软件架构风格&#xff0c;是指描述某个特定应用领域中系统组织方式的惯用模式。架构风格定义一个词汇表和一组约束&#xff0c;词汇表中包含一些组件及连接器&#xff0c;约束则指出系统如何将构建和连接器组合起来。软件架构风格反映了领域中众多系统所共有的结构和语义特…

十九、PHP框架Laravel学习笔记——批量赋值和软删除

一&#xff0e;批量赋值 上一节增删改中&#xff0c;新增中我们发现需要进行批量赋值的许可&#xff1b;一般情况下&#xff0c;是为了防止提交过来的字段在部分场景中不需要或不能&#xff1b;所以&#xff0c;我们需要通过黑白名单机制进行过滤掉必要的字段&#xff1b; //通…

speech production model

文章目录1 概述2 source model3 filter model4 小结参考资料1 概述 本文的目的是为了厘清在speech production model中source model和filter model所扮演的角色&#xff0c;不涉及具体公式的推导或者模型的建立&#xff0c;只是为了把这两个model在干什么事情说明白。文中用到…

二十、PHP框架Laravel学习笔记——模型的作用域

一&#xff0e;本地作用域 很多情况下&#xff0c;我们在数据查找时有一部分条件会被重复且大量使用&#xff1b;而这个条件&#xff0c;可能只是在这个模型对应的数据表使用&#xff0c;别的表并不使用&#xff1b;那么这种情况&#xff0c;可以使用本地作用域的方式&#xf…

论文阅读 - Joint Beat and Downbeat Tracking with Recurrent Neural Networks

文章目录1 概述2 信号预处理3 分类神经网络4 动态贝叶斯网络&#xff08;HMM&#xff09;4.1 原始的bar pointer model4.2 原始的bar pointer model的缺点4.3 改进后的模型5 预测参考资料1 概述 最近在做音乐卡点相关的项目&#xff0c;需要对音乐的基本特征进行理解&#xff…

二十一、PHP框架Laravel学习笔记——模型的访问器和修改器

一&#xff0e;访问器 访问器&#xff1a;就是在获取数据列表时&#xff0c;拦截属性并对属性进行修改的过程&#xff1b;比如&#xff0c;我们在输出性别时&#xff0c;在性别左右加上括号&#xff0c;或给邮件转换为大写&#xff1b; //访问器&#xff0c;前固定 get&#…

python将txt转json_Python控制乐高EV3,以及VSCODE环境配置

乐高EV3的可扩展性很强&#xff0c;但如何用pc连接ev3&#xff0c;并用python代码来控制EV3&#xff0c;资料太少了&#xff0c;试着做了一次&#xff0c;记录在这里。需要的硬/软件硬件准备一、乐高EV3二、PC&#xff0c;win10系统三、TF卡&#xff08;我用的是64G的&#xff…