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中使用与Perl兼容的正则表达式
Nov 26 PHP
DedeCms模板安装/制作概述
Mar 11 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
Aug 05 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
May 04 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
Oct 03 PHP
php实现查询百度google收录情况(示例代码)
Aug 02 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
Jun 12 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
Oct 30 PHP
PHP数组与对象之间使用递归实现转换的方法
Jun 24 PHP
windows7配置Nginx+php+mysql的详细教程
Sep 04 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
Oct 12 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 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
PHP 程序员也要学会使用“异常”
2009/06/16 PHP
zend api扩展的php对象的autoload工具
2011/04/18 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
2012/01/11 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
2016/09/22 PHP
PHP实现git部署的方法教程
2017/12/19 PHP
PHP封装XML和JSON格式数据接口操作示例
2019/03/06 PHP
让你的网站可编辑的实现js代码
2009/10/19 Javascript
理解Javascript_09_Function与Object
2010/10/16 Javascript
js取值中form.all和不加all的区别介绍
2014/01/20 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
Javascript通过overflow控制列表闭合与展开的方法
2015/05/15 Javascript
php利用curl获取远程图片实现方法
2015/10/26 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
node-http-proxy修改响应结果实例代码
2016/06/06 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
利用Jasmine对Angular进行单元测试的方法详解
2017/06/12 Javascript
vue+php实现的微博留言功能示例
2019/03/16 Javascript
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
python开发之thread线程基础实例入门
2015/11/11 Python
使用python实现ANN
2017/12/20 Python
Python决策树分类算法学习
2017/12/22 Python
python web框架 django wsgi原理解析
2019/08/20 Python
keras小技巧——获取某一个网络层的输出方式
2020/05/23 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
会计实习自我鉴定
2013/12/04 职场文书
人力资源经理的岗位职责
2014/03/02 职场文书
助残日活动总结
2014/08/27 职场文书
建设幸福中国演讲稿
2014/09/11 职场文书
2014年机关后勤工作总结
2014/12/16 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
SpringBoot整合Redis入门之缓存数据的方法
2021/11/17 Redis
剖析后OpLog订阅MongoDB的数据变更就没那么难了
2022/02/24 MongoDB