laravel多条件查询方法(and,or嵌套查询)


Posted in PHP onOctober 09, 2019

说明

在日常开发中,经常会需要写多条件的数据库查询语句。在使用框架的情况下,单纯使用原生sql查询会导致结果与model无法对应,也就没有办法使用框架的一些便利的方法对结果集进行处理。尤其是laravel提供了非常多的对查询结果集进行处理的工具。所以最好是使用laravel提供的ORM进行多条件的数据库查询。

问题

比如需要执行这样一条sql语句

select 
  * 
from 
  homework 
where 
  (id between 1 and 10 or id between 50 and 70) 
  and complete = 1 
  and (title like 'a%' or title like 'b%');

解决方式

$homeworks = Homework::where(function ($query) {
  $query->whereBetween('id', [1, 10])
     ->orWhereBetween('id', [50, 70]);
})->where('complete', 1)
->where(function ($query) {
  $query->where('title', 'like', 'a%')
     ->orWhere('title', 'like', 'b%');
})->get();

总结

使用ORM查询数据可以得到model数据集,能更方便的处理数据。

laravel的where方法使用闭包可以有效的构建嵌套的where子句(在这里,使用where的闭包相当于在构建sql的时候加一个括号

以上这篇laravel多条件查询方法(and,or嵌套查询)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
桌面中心(二)数据库写入
Oct 09 PHP
对javascript和select部件的结合运用
Oct 09 PHP
php函数之子字符串替换 str_replace
Mar 23 PHP
php 面试碰到过的问题 在此做下记录
Jun 09 PHP
那些年一起学习的PHP(二)
Mar 21 PHP
php数组去除空值函数分享
Feb 02 PHP
Java和PHP在Web开发方面对比分析
Mar 01 PHP
php实现中文转数字
Feb 18 PHP
提交表单后 PHP获取提交内容的实现方法
May 25 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
Oct 11 PHP
在Laravel中实现使用AJAX动态刷新部分页面
Oct 15 PHP
php桥接模式应用案例分析
Oct 23 PHP
Laravel find in set排序实例
Oct 09 #PHP
对laravel in 查询的使用方法详解
Oct 09 #PHP
laravel实现查询最后执行的一条sql语句的方法
Oct 09 #PHP
Laravel使用原生sql语句并调用的方法
Oct 09 #PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
Oct 09 #PHP
laravel执行php artisan migrate报错的解决方法
Oct 09 #PHP
解决Laravel 不能创建 migration 的问题
Oct 09 #PHP
You might like
ThinkPHP连接数据库的方式汇总
2014/12/05 PHP
分享php邮件管理器源码
2016/01/06 PHP
PHP执行linux命令常用函数汇总
2016/02/02 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
PHP数组实例详解
2016/06/26 PHP
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
2011/10/01 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
2013/05/17 Javascript
深入理解javascript动态插入技术
2013/11/12 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
bootstrap fileinput完整实例分享
2016/11/08 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
快速使用node.js进行web开发详解
2017/04/26 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
2017/10/11 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
[46:57]EG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[54:27]TNC vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
树莓派安装OpenCV3完整过程的实现
2019/10/10 Python
优衣库英国官网:UNIQLO英国
2016/12/25 全球购物
新英格兰最大的特色礼品连锁店:The Paper Store
2018/07/23 全球购物
Myholidays美国:在线旅游网站
2019/08/16 全球购物
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
群众路线党课主持词
2014/04/01 职场文书
小学生常见病防治方案
2014/06/06 职场文书
2015年食堂工作总结报告
2015/04/23 职场文书
预备党员群众意见
2015/06/01 职场文书
SpringRetry重试框架的具体使用
2021/07/25 Java/Android
Python类方法总结讲解
2021/07/26 Python
解决redis批量删除key值的问题
2022/03/23 Redis
win10电脑关机快捷键是哪个 win10快速关机的几种方法
2022/08/14 数码科技