gpt4 book ai didi

php - Laravel Eloquent 查询 JSON 列,其中包含Where In?

转载 作者:行者123 更新时间:2023-12-02 19:35:15 28 4
gpt4 key购买 nike

我在查询 json 列时遇到问题。

以前我的代码是

$query->whereIn('user', $users);

现在我已将数据库类型更改为 JSON 列,并尝试修改新版本的代码。

在 RAW MYSQL 中这是有效的

JSON_CONTAINS(user, '"tom","Bill"') 

但是当我将它放入 eloquent/php 中时,它总是失败或返回注释。这里我传递了一个用户数组,之前使用的是在原始 SQL 中工作的WhereIn

$leads->whereRaw("JSON_CONTAINS(user, '"$users"')")

知道如何让它在 Laravel 中工作,这样我就可以传入一个字符串数组,针对也包含字符串数组的 json 列查询它们。

我的 Json 列有这样的数据

["Paul", "Tom", "Bob"]

最佳答案

MySQL 需要一个 JSON 字符串:

$leads->whereRaw('JSON_CONTAINS(user, ?)', [json_encode($users)])

在 Laravel 5.6.24 中,您可以使用 whereJsonContains():

$leads->whereJsonContains('user', $users)

关于php - Laravel Eloquent 查询 JSON 列,其中包含Where In?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48188529/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com