1
我在聯繫人表中存儲了一個JSON數組,並且能夠運行語句以使用我的SQL管理器刪除密鑰,但是我沒有找到任何方法來轉換此查詢到Eloquent或原始聲明:使用Eloquent或原始語句刪除多重JSON密鑰
UPDATE `contacts` SET `additional` = JSON_REMOVE(`additional` , '$."3"')
任何想法如何在Laravel中運行此查詢?
我在聯繫人表中存儲了一個JSON數組,並且能夠運行語句以使用我的SQL管理器刪除密鑰,但是我沒有找到任何方法來轉換此查詢到Eloquent或原始聲明:使用Eloquent或原始語句刪除多重JSON密鑰
UPDATE `contacts` SET `additional` = JSON_REMOVE(`additional` , '$."3"')
任何想法如何在Laravel中運行此查詢?
$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')")
]);
使用雄辯:
Contact::query()
->update([
'additional' => DB::raw("JSON_REMOVE(additional, '$jsonPath')")
]);
感謝,工程巨大,但你有怎樣的任何想法傳遞一個變量(用$ id替換「3」)? – altonline
找到了解決方案:Contact :: query() - > update(['additional'=> DB :: raw('JSON_REMOVE(additional,\'$ \。''。$ id。'\''')' )]); – altonline
@altonline請參閱更新。 – peterm