php - 如何根据与特殊数据匹配的json列检索数据
问题描述
delivery_charges
表有一个名为 的 json 类型列locations
。该列有以下数据
[{"district_id":"1"},{"district_id":"2"},{"district_id":"3"}]
但是$deliveryCharges
当我运行这段代码时总是一个空数组:
$deliveryCharges = DB::table('delivery_charges')
->whereJsonContains('locations->district_id',post('district_id'))
->get();
dump(post('district_id')); // outputs 1
dump($deliveryCharges); // outputs []
我可以看到值为post('district_id')
1。当我注释行时,whereJsonContains()
它返回数据。所以在我看来,我的 where 子句有问题。
解决方案
尝试这个
$deliveryCharges = DB::table('delivery_charges')
->where('locations','LIKE','%"district_id":"'.post('district_id') .'"%')
->get();
推荐阅读
- django - 模板不显示 html 内容
- c# - Distinct 不适用于实体框架
- html - 当一个类中有两个或多个类时,哪个类具有更高的优先级?
- mysql - 根据另一行更新一行
- mysql - 错误Mysql:子查询返回多于1行MYSQL
- python - Pycharm 终端在带有 VirtualEnv 的 Windows 10 上无法正常工作
- python - 如何细分/优化 xarray 数据集中的维度?
- python - 在model.method工作后更改views.py中的变量 - Django
- c - 分配了不正确的值 - C
- windows - Install4j 安装程序在与另一个安装程序捆绑时看不到映射驱动器