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 相关文章推荐
PHP中for循环语句的几种变型
Mar 16 PHP
PHP insert语法详解
Jun 07 PHP
PHP 可阅读随机字符串代码
May 26 PHP
超级实用的7个PHP代码片段分享
Jan 05 PHP
php的POSIX 函数以及进程测试的深入分析
Jun 03 PHP
PHP页面间参数传递的四种方法详解
Jun 09 PHP
smarty中改进truncate使其支持中文的方法
May 30 PHP
Ubuntu彻底删除PHP7.0的方法
Jul 27 PHP
PHP常见加密函数用法示例【crypt与md5】
Jan 27 PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 PHP
Thinkphp集成抖音SDK的实现方法
Apr 28 PHP
php实例化对象的实例方法
Nov 17 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
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
一次因composer错误使用引发的问题与解决
2019/03/06 PHP
jscript之Read an Excel Spreadsheet
2007/06/13 Javascript
关于js拖拽上传 [一个拖拽上传修改头像的流程]
2011/07/13 Javascript
js精度溢出解决方案
2012/12/02 Javascript
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
js实现动态改变字体大小代码
2014/01/02 Javascript
Python脚本后台运行的几种方式
2015/03/09 Javascript
jquery实现用户打分评分特效
2015/05/28 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
2015/11/07 Javascript
三种Node.js写文件的方式
2016/03/08 Javascript
js判断出两个字符串最大子串的函数实现方法
2016/11/01 Javascript
利用D3.js实现最简单的柱状图示例代码
2016/12/09 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
Angular2 组件间通过@Input @Output通讯示例
2017/08/24 Javascript
JavaScript模拟实现封装的三种方式及写法区别
2017/10/27 Javascript
node.js基于express使用websocket的方法
2017/11/09 Javascript
Bootstrap Table 搜索框和查询功能
2017/11/30 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
vue中实现先请求数据再渲染dom分享
2018/03/17 Javascript
jQuery实现ajax回调函数带入参数的方法示例
2018/06/26 jQuery
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
2013/12/04 Python
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
python实现简易学生信息管理系统
2020/04/05 Python
Python视频编辑库MoviePy的使用
2020/04/01 Python
python轮询机制控制led实例
2020/05/03 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
好家长事迹材料
2014/01/23 职场文书
文明城市标语
2014/06/16 职场文书
搞笑的获奖感言
2014/08/16 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS
navicat 连接Ubuntu虚拟机的mysql的操作方法
2022/04/02 MySQL