📜  json whereIn laravel - PHP (1)

📅  最后修改于: 2023-12-03 14:43:34.347000             🧑  作者: Mango

Laravel 中的 JSON whereIn

当你在 Laravel 项目中需要执行一个基于多个条件的查询时,你可能需要使用 whereIn 。在某些情况下,你可能需要在一个 json 类型的字段中执行 whereIn 查询。在这种情况下,Laravel 中的 whereJsonContains 方法可以派上用场。

什么是 Json Contains(包含)?

JSON 可以在 MySQL 数据库中进行存储,但是你需要对所储存的数据进行分析和查询。 whereJsonContains 提供了查询 JSON 字段的简单手段,以确保所需值包含在 JSON 字段中。

如何使用 whereInwhereJsonContains 方法?

我们通过一个实例来展示在 Laravel 中如何使用 whereInwhereJsonContains 方法进行查询。

假设我们有一个名为 users 的表,其中包含一列名为 meta 的 JSON 类型字段,当我们想要在此字段中查找一组 values 值时,就可使用 whereIn

$users = DB::table('users')   // 选择 users 表
            ->whereIn('meta->values', ['value1', 'value2'])
            ->get();

上述代码中,我们使用 whereIn 方法在 meta->values 字段中查找包含 value1value2 的记录。 注意 meta->values 中的箭头符号使我们可以直接跨越 JSON 数组中的元素及其属性。

现在,让我们看一下如何使用 whereJsonContains 来完成相同的查询。

$users = DB::table('users')   // 选择 users 表
            ->whereJsonContains('meta->values', ['value1', 'value2'])
            ->get();

此代码与上面的示例相同,但是我们使用了 whereJsonContains,它可以对 meta->values 字段进行包含操作。

结论

在 Laravel 中,如果你需要在 JSON 字段中执行查询,则可以使用 whereInwhereJsonContains 进行操作。这两个方法都可以帮助你获得你所需的数据,并且你可以根据具体情况选择使用哪一个。