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 相关文章推荐
关于mysql 字段的那个点为是定界符
Jan 15 PHP
php日历[测试通过]
Mar 27 PHP
PHP DataGrid 实现代码
Aug 12 PHP
神盾加密解密教程(三)PHP 神盾解密工具
Jun 08 PHP
Yii使用CLinkPager分页实例详解
Jul 23 PHP
php管理nginx虚拟主机shell脚本实例
Nov 19 PHP
PHP实现二维数组按某列进行排序的方法
Nov 18 PHP
php计算多个集合的笛卡尔积实例详解
Feb 16 PHP
PHP守护进程化在C和PHP环境下的实现
Nov 21 PHP
PHP给前端返回一个JSON对象的实例讲解
May 31 PHP
php 处理png图片白色背景色改为透明色的实例代码
Dec 10 PHP
PHP 实现链式操作
Mar 09 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 minixml详解
2008/07/19 PHP
PHP中比较两个字符串找出第一个不同字符位置例子
2014/04/08 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
PHP5.3安装Zend Guard Loader图文教程
2014/09/29 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
2015/12/19 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
动态修改DOM 里面的 id 属性的弊端分析
2008/09/03 Javascript
jQuery获取css z-index在各种浏览器中的返回值
2010/09/15 Javascript
javascript正则匹配汉字、数字、字母、下划线
2014/04/10 Javascript
js触发select onchange事件的小技巧
2014/08/05 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
JavaScrip关于创建常量的知识点
2017/12/07 Javascript
JS实现监控微信小程序的原理
2018/06/15 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
vue子传父关于.sync与$emit的实现
2019/11/05 Javascript
vscode自定义vue模板的实现
2021/01/27 Vue.js
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
python简单实现基于SSL的IRC bot实例
2015/06/15 Python
使用Python3编写抓取网页和只抓网页图片的脚本
2015/08/20 Python
wxpython中Textctrl回车事件无效的解决方法
2016/07/21 Python
使用python绘制常用的图表
2016/08/27 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
pandas按行按列遍历Dataframe的几种方式
2019/10/23 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
Linux Interview Questions For software testers
2012/06/02 面试题
高一家长会邀请函
2014/01/12 职场文书
代理协议书
2014/04/22 职场文书
Python爬虫实战之爬取携程评论
2021/06/02 Python
java设计模式--建造者模式详解
2021/07/21 Java/Android