我一直在我的项目中遇到问题。我想搜索我的json数据。但无法做到这一点。这是我的查询
$variations = User::whereJsonContains('addon->ram', '>', 0)->count();
return $variations;
我的json数据存储在addon
列中,数据是
{"ram":"87","base-driven":"89"}
在这个查询中我得到错误说
SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误; (SQL:从
users
中选择count(*)作为聚合,其中0 json_contains(addon
- >'$。“ram”',“>”)
我谷歌但它无法解决这个问题
提前致谢
这是因为你提供“87”和“89”作为字符串。尝试用数字替换它:
{"ram":87,"base-driven":89}
试试吧
$variations = User::where('addon->ram', '>', 0)->count();
return $variations;
如果你遇到一些错误,请留出时间。
当你将它保存为字符串时,你可能需要做类似的事情
Laravel的WHERE JSON_EXTRACT(addon, "$[ram]") > 0;