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 相关文章推荐
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
Apr 18 PHP
php源代码安装常见错误与解决办法分享
May 28 PHP
php-cli简介(不会Shell语言一样用Shell)
Jun 03 PHP
解析php中die(),exit(),return的区别
Jun 20 PHP
php输入流php://input使用示例(php发送图片流到服务器)
Dec 25 PHP
php中\r \r\n \t的区别示例介绍
Feb 08 PHP
php中require和require_once的区别说明
Feb 27 PHP
windwos下使用php连接oracle数据库的过程分享
May 26 PHP
php三元运算符知识汇总
Jul 02 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 PHP
PHP两种实现无级递归分类的方法
Mar 02 PHP
php中时间函数date及常用的时间计算
May 12 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字符串按照单词进行反转的方法
2015/03/14 PHP
javascript 冒号 使用说明
2009/06/06 Javascript
JavaScript 动态创建VML的方法
2009/10/14 Javascript
js null,undefined,字符串小结
2010/08/21 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
Javascript模拟加速运动与减速运动代码分享
2014/12/11 Javascript
JavaScript学习笔记之Cookie对象
2015/01/22 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
概述jQuery的元素筛选
2016/11/23 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
JavaScript中callee和caller的区别与用法实例分析
2019/06/28 Javascript
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
[02:29]完美世界高校联赛上海赛区回顾
2015/12/15 DOTA
[51:36]EG vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
python 文本单词提取和词频统计的实例
2018/12/22 Python
Python爬虫程序架构和运行流程原理解析
2020/03/09 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
2020/03/10 Python
Python程序慢的重要原因
2020/09/04 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
python爬取抖音视频的实例分析
2021/01/19 Python
使用HTML5在网页中嵌入音频和视频播放的基本方法
2016/02/22 HTML / CSS
PHP如何去执行一个SQL语句
2016/03/05 面试题
写好求职信第一句话的技巧
2013/10/26 职场文书
自荐信怎么写呢?
2013/12/09 职场文书
中餐厅主管的职责范文
2014/02/04 职场文书
《十六年前的回忆》教学反思
2014/02/14 职场文书
清明节扫墓活动方案
2014/03/02 职场文书
环境工程专业自荐信
2014/03/03 职场文书
鉴定评语大全
2014/05/05 职场文书
晚会闭幕词
2015/01/28 职场文书
自己搭建resnet18网络并加载torchvision自带权重的操作
2021/05/13 Python