测试数据库中的 JSON 数据并获取列

共3个回答,已解决, 标签: php laravel

我的数据库中有一个栏目, 里面存放着一个 json, 我想恢复我 json 的某个对象的价值, 以便对其进行测试

所以我的专栏 "JSON" 包含

{
"type":"index",
"data ":{"index":2}
}

如果我收到 2, 我需要得到这个列, 其中包含索引 2 删除它, 我已经尝试了这:



$column = Table::where('JSON["data"]["index"]','=', '2' )
                ->first();
 Table::dropColumn($column);


但它不工作, 因为我不能得到索引

第1个答案(采用)

如果你使用的是最新的拉拉维尔版本, 那么,

$column = Table::where('JSON->data->index','2')->first();

应该管用的

你可以参考官方的拉拉维尔文件的 json 在这里条款。

第2个答案

只需使用类似的 SQL

->where('JSON', 'like', '%"index": "2"%');
第3个答案
   Since you gave JSON value as a string, it was unable to get the index value.
   Can you please try like below,
       $column = Table::whereRaw(JSON["data"]["index"], '=', '2' )
                 ->first();
                 Table::dropColumn($column);

相关问题

mysql _ 拿给数组 ()/mysql_fetch_assoc ()/mysql_fetch_row ()/mysql_num_rows 等希望参数1是资源或结果 参考-此错误在 PHP 中意味着什么? 如何在 PHP 中分析和处理 HTML\ xml? React Laravel 5.8.33 Axios: 使用 axios.post 请求注册用户时出错; 澄清代码问题 工匠命令 “品牌: 月 Laravel 验证” 是不确定的 使用 Laravel 创建新项目会引发异常