您的位置:首页 > 编程学习 > > 正文

laravel怎么查询信息过滤(laravel多条件查询方法and,or嵌套查询)

更多 时间:2021-10-15 00:13:14 类别:编程学习 浏览量:2691

laravel怎么查询信息过滤

laravel多条件查询方法and,or嵌套查询

说明

在日常开发中,经常会需要写多条件的数据库查询语句。在使用框架的情况下,单纯使用原生sql查询会导致结果与model无法对应,也就没有办法使用框架的一些便利的方法对结果集进行处理。尤其是laravel提供了非常多的对查询结果集进行处理的工具。所以最好是使用laravel提供的ORM进行多条件的数据库查询。

问题

比如需要执行这样一条sql语句

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 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%');
  • 解决方式

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • $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嵌套查询)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。

    原文链接:https://blog.csdn.net/xcqingfeng/article/details/80364618

    您可能感兴趣