使用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 字段?
1 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
您需要放入user_id
单引号,否则它会被视为标识符:
DB::table('payment_methods')->where("json_data_column->>'user_id'", '')->delete();
- 1 回答
- 0 关注
- 103 浏览
添加回答
举报
0/150
提交
取消