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&mysql(六)
Oct 09 PHP
php 全局变量范围分析
Aug 07 PHP
smarty模板嵌套之include与fetch性能测试
Dec 05 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
thinkphp实现多语言功能(语言包)
Mar 04 PHP
thinkphp模板继承实例简述
Nov 26 PHP
windows下配置php5.5开发环境及开发扩展
Dec 25 PHP
PHP判断是否连接上网络的方法
Jul 01 PHP
php无限级分类实现方法分析
Oct 19 PHP
PHP+Session防止表单重复提交的解决方法
Apr 09 PHP
laravel实现前后台路由分离的方法
Oct 13 PHP
PHP实现微信提现功能(微信商城)
Nov 21 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
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
初步介绍PHP扩展开发经验分享
2012/09/06 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
微信红包随机生成算法php版
2016/07/21 PHP
PHP输出XML格式数据的方法总结
2017/02/08 PHP
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
2016/10/09 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
2016/12/13 Javascript
详解vue-cli开发环境跨域问题解决方案
2017/06/06 Javascript
vue2 全局变量的设置方法
2018/03/09 Javascript
详解多页应用 Webpack4 配置优化与踩坑记录
2018/10/16 Javascript
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
python re正则表达式模块(Regular Expression)
2014/07/16 Python
Python中unittest模块做UT(单元测试)使用实例
2015/06/12 Python
星球大战与Python之间的那些事
2016/01/07 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
2016/03/02 Python
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
Python 函数返回值的示例代码
2019/03/11 Python
selenium WebDriverWait类等待机制的实现
2020/03/18 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
2020/04/27 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
完美解决python针对hdfs上传和下载的问题
2020/06/05 Python
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
质量安全标语
2014/06/07 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
2014年政教处工作总结
2014/12/20 职场文书
诚信承诺书
2015/01/19 职场文书
律师函格式范本
2015/05/27 职场文书
致运动员的广播稿
2015/08/19 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
2019数学教师下学期工作总结
2019/06/27 职场文书
goland 清除所有的默认设置操作
2021/04/28 Golang