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 相关文章推荐
模仿OSO的论坛(三)
Oct 09 PHP
PHP函数utf8转gb2312编码
Dec 21 PHP
PHP基础知识介绍
Sep 17 PHP
ThinkPHP3.1数据CURD操作快速入门
Jun 19 PHP
PHP使用json_encode函数时不转义中文的解决方法
Nov 12 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
Jan 30 PHP
Zend Framework创建自己的动作助手详解
Mar 05 PHP
Yii实现的多级联动下拉菜单
Jul 13 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 PHP
PHP实现的文件上传类与用法详解
Jul 05 PHP
一个实用的php验证码类
Jul 06 PHP
php7下的filesize函数
Sep 30 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 和 MySQL 基础教程(二)
2006/10/09 PHP
ie6 动态缩略图不显示的原因
2009/06/21 PHP
PHP number_format() 函数定义和用法
2012/06/01 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
php简单smarty入门程序实例
2015/06/11 PHP
PHP基于单例模式实现的mysql类
2016/01/09 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
学习ExtJS(一) 之基础前提
2009/10/07 Javascript
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
2016/10/09 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
2020/04/27 Javascript
python操作excel的方法
2018/08/16 Python
对python制作自己的数据集实例讲解
2018/12/12 Python
Python 判断奇数偶数的方法
2018/12/20 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
如何使用Python 打印各种三角形
2019/06/28 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
2019/08/12 Python
python数据类型可变不可变知识点总结
2020/03/06 Python
Python基于类路径字符串获取静态属性
2020/03/12 Python
python实现126邮箱发送邮件
2020/05/20 Python
python3检查字典传入函数键是否齐全的实例
2020/06/05 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
2020/07/01 Python
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
澳大利亚宠物食品和药物在线:Jumbo Pets
2018/03/24 全球购物
人力资源管理毕业生自荐信
2013/11/21 职场文书
《称象》教学反思
2014/04/25 职场文书
兴趣小组活动总结
2014/05/05 职场文书
党员演讲稿
2014/09/04 职场文书
2014年工人工作总结
2014/11/25 职场文书
机修车间主任岗位职责
2015/04/08 职场文书
世界名著读书笔记
2015/06/25 职场文书
员工升职自我评价
2019/03/26 职场文书
MySQL开启事务的方式
2021/06/26 MySQL
python创建字典及相关管理操作
2022/04/13 Python