📜  laravel where 和 where - PHP (1)

📅  最后修改于: 2023-12-03 15:17:13.216000             🧑  作者: Mango

Laravel Where 和 Where

Laravel 是一个基于 PHP 的开源 Web 应用程序框架,它提供了许多巨大的工具和功能来帮助开发人员快速地构建 Web 应用程序。其中一个最实用的功能是查询构建器,在其中 Laravel 提供了 where()orWhere() 方法来方便查询 SQL 数据库数据的向导操作。在本文中,我们将学习 Laravel 的 whereorWhere 方法。

1. Laravel Where条件

where() 方法用于对查询添加基本的 where 子句,其中包括一个需要匹配的列、一个运算符和一个值。默认情况下,where 子句使用 = 运算符,但可以使用其他运算符,例如 <>><<=

1.1 基本用法

下面是一个查找文章题目是 "Laravel Where" 的查询示例:

$articles = DB::table('articles')
                ->where('title', '=', 'Laravel Where')
                ->get();

1.2 IN 子句

where 方法中可以使用 whereInwhereNotIn 方法创建 INNOT IN 语句。这两个方法都接受一个列名和一个数组:

$articles = DB::table('articles')
                ->whereIn('id', [1, 2, 3])
                ->get();

$articles = DB::table('articles')
                ->whereNotIn('id', [1, 2, 3])
                ->get();

1.3 比较操作符

除了 = 操作符之外,Laravel Query Builder 还支持以下比较操作符:

| 运算符 | 描述 | | --- | --- | | = | 相等 | | <> 或 != | 不等于 | | > | 大于 | | >= | 大于等于 | | < | 小于 | | <= | 小于等于 | | between | 在两个值之间 | | not between | 不在两个值之间 | | like | 匹配 | | not like | 不匹配 | | in | 指定值集合 | | not in | 指定不在值集合中 |

下面是一些使用以上操作符的示例:

$users = DB::table('users')
                ->where('votes', '>', 100)
                ->get();

$users = DB::table('users')
                ->where('votes', '<=', 100)
                ->get();

$users = DB::table('users')
                ->where('name', 'like', 'T%')
                ->get();

$users = DB::table('users')
                ->where([
                    ['status', '=', 'active'],
                    ['subscribed', '<>', '1'],
                ])
                ->get();
2. Laravel OrWhere条件

orWhere() 方法用于创建一个新的 or where 子句,其根据 where 方法所提供的条件,来构造一个新的 or 子句。 当查询需要基于多个条件,而这些条件之间是 or 逻辑时,orWhere 方法比较适用。下面是一个用于检索文章标题中包含 "laravel" 或作者 ID 是 1 的查询示例:

$articles = DB::table('articles')
            ->where('title', 'like', 'Laravel%')
            ->orWhere('author_id', 1)
            ->get();
3. Laravel Where与OrWhere条件的混合使用

我们可以结合使用 whereorWhere 方法来创建更高级的 SQL 查询。下面是一个复杂的查询示例,查询文章的标题包含 "laravel" 且发布日期大于 2018 年 1 月 1 日,或作者 ID 是 1 的文章:

$articles = DB::table('articles')
            ->where('title', 'like', 'Laravel%')
            ->where('created_at', '>', '2018-01-01')
            ->orWhere('author_id', 1)
            ->get();

以上示例中,我们用最简单的形式展现了组合多个 where 条件的方式。

4. Laravel Where条件与函数的结合使用

Laravel 提供了许多有用的 where 条件的函数辅助。我们可以使用这些函数,来增加一些结构化查询的各种过滤条件。下面是一个使用 whereDate 方法查询 2019 年 7 月的文章列表的示例:

$articles = DB::table('articles')
            ->whereDate('created_at', '>=', '2019-07-01')
            ->whereDate('created_at', '<=', '2019-07-31')
            ->get();
5. Laravel WhereBetween

whereBetween 方法用于在两个值之间进行比较。下面是一个使用 whereBetween 方法查询文章评论数在 100 到 300 之间的所有文章的示例:

$articles = DB::table('articles')
            ->whereBetween('comment_count', [100, 300])
            ->get();
结论

Laravel 的 where()orWhere() 方法为我们提供了查询构建器中的一些便捷的功能,灵活的组合方式为我们的查询提供了关键的帮助。 通过这些方法,可以将查询构建器的优势发挥到极致,让查询功能更加智能。