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下正则来匹配dede模板标签的代码
Aug 21 PHP
PHP中__FILE__、dirname与basename用法实例分析
Dec 01 PHP
PHP中的命名空间相关概念浅析
Jan 22 PHP
CentOS下PHP安装Oracle扩展
Feb 15 PHP
php.ini中的request_order推荐设置
May 10 PHP
PHP实现事件机制实例分析
Jun 26 PHP
PHP编程基本语法快速入门手册
Jan 07 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
Jun 30 PHP
PHP面向对象中new self()与 new static()的区别浅析
Aug 17 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
Oct 03 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
Sep 17 PHP
数据结构之利用PHP实现二分搜索树
Oct 25 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加速的eAccelerator dll支持文件打包下载
2007/09/30 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
2014/11/06 PHP
php微信支付之APP支付方法
2015/03/04 PHP
PHP获取一年有几周以及每周开始日期和结束日期
2015/08/06 PHP
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
js 自定义的联动下拉框
2010/02/07 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
小发现之浅谈location.search与location.hash的问题
2017/06/23 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
在python shell中运行python文件的实现
2019/12/21 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
美国在线奢侈品寄售商店:Luxury Garage Sale
2018/08/19 全球购物
机电专业大学生职业规划书范文
2014/02/25 职场文书
司机职责范本
2014/03/08 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
爱心捐助活动总结
2015/05/09 职场文书
收入证明怎么写
2015/06/12 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL
java如何实现socket连接方法封装
2021/09/25 Java/Android
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL