mysql - laravel whereJson 包含带操作符
问题描述
我有一个名为“体验”的 json 列。
它是一个具有这样结构的对象数组
[
{
...
"years": 1
},
{
...
"years": 2
}
]
我想获得经验年大于或等于 2 的用户
目前我正在这样做
User::whereJsonContains('experience', ['years' => 2]);
但这只会返回经验年数等于 2 的用户
我试过这样做,但没有奏效
User::whereJsonContains('experience->years', '>=' , 2);
User::where('experience->years', '>=' , 2);
无论如何在laravel或mysql中实现这一点?
解决方案
这不是一个合适的解决方案,但它可能会对您有所帮助。
$users = \DB::table('users')->where(\DB::raw('JSON_EXTRACT(experience, "$[*].years")'), '>=', 2)->get();
推荐阅读
- java - 无法修改小米 Miui 设备中的系统设置
- javascript - 安装和使用聚合物元素后未捕获的 DOMException
- c++ - 将字母分配给 if 语句的变量
- javascript - MongoDB:如果更新后有相同的值,则会出现错误消息
- json - 闭包内循环的 JSON 问题
- python - 如何为子图中的数字设置动画?
- redux - 在 redux 中的展开运算符处显示错误
- python - 分页:为什么页面不匹配时它仍在运行?
- ios - Swift UITableView:如何从选定的单元格中收集数据
- python - 通过比较两个不相等的数据框的字符串来创建一个新的数据框列