使用Eloquent或raw语句删除multplie JSON密钥

时间:2017-05-25 17:47:46

标签: laravel

我在联系人表中存储了一个JSON数组,并且能够使用我的SQL管理器运行语句来删除密钥,但我还没有找到任何方法将此查询转换为Eloquent或原始语句:< / p>

UPDATE `contacts` SET `additional` = JSON_REMOVE(`additional` , '$."3"')

如何在Laravel中运行此查询?

1 个答案:

答案 0 :(得分:1)

$id = 3;
$jsonPath = '$."'.$id.'"';

使用原始声明

DB::statement('UPDATE contacts SET additional = JSON_REMOVE(additional, ?)', [$jsonPath];

使用QueryBuilder:

DB::table('contacts')
    ->update([
        'additional' => DB::raw("JSON_REMOVE(additional, '$jsonPath')")
    ]);

使用Eloquent:

Contact::query()
    ->update([
        'additional' => DB::raw("JSON_REMOVE(additional, '$jsonPath')")
    ]);