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
用文本文件实现的动态实时发布新闻的程序
Oct 09 PHP
将OICQ数据转成MYSQL数据
Oct 09 PHP
去除php注释和去除空格函数分享
Mar 13 PHP
php实现的网络相册图片防盗链完美破解方法
Jul 01 PHP
PHP中抽象类和抽象方法概念与用法分析
May 24 PHP
php5.3后静态绑定用法详解
Nov 11 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
Sep 09 PHP
laravel5.6实现数值转换
Oct 23 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
Apr 06 PHP
Thinkphp 框架扩展之应用模式实现方法分析
Apr 27 PHP
PHP的垃圾回收机制代码实例讲解
Feb 27 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的反射机制
2016/12/15 PHP
php文件上传类的分享
2017/07/06 PHP
得到文本框选中的文字,动态插入文字的js代码
2007/03/07 Javascript
Highslide.js是一款基于js实现的网页中图片展示插件
2020/03/30 Javascript
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
javascript Object与Function使用
2010/01/11 Javascript
JS 各种网页尺寸判断实例方法
2013/04/18 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
JavaScript中constructor()方法的使用简介
2015/06/05 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
JS实现黑客帝国文字下落效果
2015/09/01 Javascript
JavaScript事件学习小结(三)js事件对象
2016/06/09 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
几行js代码实现自适应
2017/02/24 Javascript
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
[01:51]2014DOTA2西雅图邀请赛 MVP 外卡赛black场间采访
2014/07/09 DOTA
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
[49:18]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 OG vs TNC
2018/04/01 DOTA
Django rest framework基本介绍与代码示例
2018/01/26 Python
python3将变量写入SQL语句的实现方式
2020/03/02 Python
大学生通用个人的自我评价
2014/02/10 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
小学综治宣传月活动总结
2014/07/02 职场文书
体育课外活动总结
2014/07/08 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
先进个人事迹材料
2014/12/29 职场文书
学生安全责任协议书
2016/03/22 职场文书
Nginx开启Brotli压缩算法实现过程详解
2021/03/31 Servers
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python
Java tomcat手动配置servlet详解
2021/11/27 Java/Android