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模块 Memcached功能多于Memcache
Jun 14 PHP
php smarty 二级分类代码和模版循环例子
Jun 16 PHP
shopex主机报错误请求解决方案(No such file or directory)
Dec 27 PHP
PHP在线生成二维码(google api)的实现代码详解
Jun 04 PHP
php跨站攻击实例分析
Oct 28 PHP
php取得字符串首字母的方法
Mar 25 PHP
PHP实现过滤各种HTML标签
May 17 PHP
四个PHP非常实用的功能
Sep 29 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
Nov 15 PHP
php foreach如何跳出两层循环(详解)
Nov 05 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
PHP单例模式实例分析【防继承,防克隆操作】
May 22 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
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
php/js获取客户端mac地址的实现代码
2013/07/08 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
JQuery扩展插件Validate—6 radio、checkbox、select的验证
2011/09/05 Javascript
js用正则表达式来验证表单(比较齐全的资源)
2013/11/17 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
jQuery中animate()方法用法实例
2014/12/24 Javascript
Jquery 实现弹出层插件
2015/01/28 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
2015/03/04 Javascript
Jquery实现动态切换图片的方法
2015/05/18 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
2016/02/19 Javascript
Vue.js基础知识汇总
2016/04/27 Javascript
js数组与字符串常用方法总结
2017/01/13 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
nginx+vue.js实现前后端分离的示例代码
2018/02/12 Javascript
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
微信小程序实现点击效果
2019/06/21 Javascript
JavaScript原生数组函数实例汇总
2020/10/14 Javascript
[52:03]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第三场 1月31日
2021/03/11 DOTA
python实现simhash算法实例
2014/04/25 Python
python实现的简单猜数字游戏
2015/04/04 Python
基于python plotly交互式图表大全
2019/12/07 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
python类共享变量操作
2020/09/03 Python
python 常见的反爬虫策略
2020/09/27 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
HTML5重塑Web世界它将如何改变互联网
2012/12/17 HTML / CSS
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
彪马俄罗斯官网:PUMA俄罗斯
2019/07/13 全球购物
法国体育用品商店:GO Sport
2019/10/23 全球购物
党的群众路线批评与自我批评范文
2014/10/16 职场文书
python开发人人对战的五子棋小游戏
2022/05/02 Python