【问题标题】:Laravel foreach json column queryLaravel foreach json 列查询
【发布时间】:2020-10-13 08:49:13
【问题描述】:

我正在尝试运行一个 foreach 循环来查询我的数据库中 json 数据列中的数据。我相信 foreach 代码是正确的,但我无法使用循环检索数据。如果可能,我会尝试使用雄辩的查询。

数据存储在名为“figuresinorder”的列中:["1","22","2","45"]

            $items = ['1', '2', '3'];
            $figures3 = customtrades::where(function ($query) use ($items) {
                foreach($items as $item) {
                  $query->whereJsonContains('figuresinorder', "$item");
                }
            })
                ->get();

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    首先尝试删除"包围$item

    $query->whereJsonContains('figuresinorder', $item);
     
    

    如果这不起作用,请尝试以下方法:

    $query->whereRaw('JSON_CONTAINS(figuresinorder, ?)', [$item]);
    

    【讨论】:

    • 我仍然对这两种说法都不满意,这让我很困惑,因为如果我将 $item 更改为一个数字,例如``` $query->whereJsonContains('figuresinorder', '1'); ``` 我得到一个返回的结果,所以我不知道为什么使用该变量不起作用。
    • 如果你通过" "传递它会得到$item一个字符串并且没有值被改变
    • 感谢您的反馈和帮助,我不确定您所说的通过“”是什么意思。
    猜你喜欢
    • 2021-01-26
    • 1970-01-01
    • 2021-06-15
    • 2018-06-19
    • 1970-01-01
    • 2019-12-24
    • 2019-06-22
    • 2019-01-04
    • 2020-01-10
    相关资源
    最近更新 更多