Laravel 查询生成器:如何访问 JSON 键/值对

使用Laravel 5.1,如何在迁移中通过查询生成器访问 JSON 键/值对?json_data_column中存储有 JSON 数据,我需要在where()查询生成器表达式中对其进行验证。逻辑是这样的:


DB::transaction(function () {


 echo 'Deleting rows where user_id is empty...' . PHP_EOL;


 DB::table('payment_methods')->where('json_data_column->user_id', '""')->delete();


});

然而,链接在这里似乎不起作用。事实上,输出是:


  [Illuminate\Database\QueryException]                                                          

  SQLSTATE[42703]: Undefined column: 7 ERROR:  column "user_id" does not exist           

  LINE 1: ... "payment_methods" where "json_data_column"->user_id...                    

                                                               ^ (SQL: delete from "payment_me  

  thods" where "payment_platform_data"->user_id = "") 

在这种情况下,是否可以使用上面的逻辑来使用链接?如果没有,我如何访问 JSON 字段?


元芳怎么了
浏览 104回答 1
1回答

翻过高山走不出你

您需要放入user_id单引号,否则它会被视为标识符: DB::table('payment_methods')->where("json_data_column->>'user_id'", '')->delete();
打开App,查看更多内容
随时随地看视频慕课网APP