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 相关文章推荐
打造计数器DIY三步曲(下)
Oct 09 PHP
php $_ENV为空的原因分析
Jun 01 PHP
简单的PHP留言本实例代码
May 09 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
基于php iconv函数的使用详解
Jun 09 PHP
通过table标签,PHP输出EXCEL的实现方法
Jul 24 PHP
Zend Framework教程之MVC框架的Controller用法分析
Mar 07 PHP
php 的反射详解及示例代码
Aug 25 PHP
php调用云片网接口发送短信的实现方法
Oct 25 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
tp框架(thinkPHP)实现三次登陆密码错误之后锁定账号功能示例
May 24 PHP
PHP基本语法
Mar 31 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的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
PHP实现时间轴函数代码
2011/10/08 PHP
Thinkphp的volist标签嵌套循环使用教程
2014/07/08 PHP
php实现的一个简单json rpc框架实例
2015/03/30 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
jquery对表单操作2
2011/04/06 Javascript
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
H5手机端多文件上传预览插件
2017/04/21 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
2019/09/09 Javascript
react实现同页面三级跳转路由布局
2019/09/26 Javascript
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
python正则表达式面试题解答
2020/04/28 Python
Python实现PS滤镜功能之波浪特效示例
2018/01/26 Python
python脚本生成caffe train_list.txt的方法
2018/04/27 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
Python多线程模块Threading用法示例小结
2019/11/09 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
html5唤起app的方法
2017/11/30 HTML / CSS
金融专业大学生自我评价
2014/01/09 职场文书
酒店开业庆典主持词
2014/03/21 职场文书
司法助理专业自荐书
2014/06/13 职场文书
上课随便讲话检讨书
2014/09/12 职场文书
2014年秘书工作总结
2014/11/25 职场文书
志愿者事迹材料
2014/12/26 职场文书
优秀党员个人总结
2015/02/14 职场文书
大学生个人总结范文
2015/02/15 职场文书
《葡萄沟》教学反思
2016/02/23 职场文书
Golang解析JSON对象
2022/04/30 Golang