用Laravel查询sql中的json列

时间:2018-05-19 09:53:41

标签: mysql json laravel mysql-json

Seofilter db表的json列名为category_ids。我想查询哪里有价值 存在于json col。

并没有查询所有行并获得他们的jsoncol值然后爆炸等,我想用服务器负载来减少对服务器的查询。

例如[{60,59,57}]或[{55,58,60}]所以60都存在。

2 个答案:

答案 0 :(得分:1)

Laravel 5.6.24包括whereJsonContains()

DB::table('seofilter')->whereJsonContains('category_id', 60)->get();
DB::table('seofilter')->whereJsonContains('category_id', [60, 61, ...])->get();

答案 1 :(得分:0)

MySQL有一组JSON操作和搜索功能我相信你会在这里找到你想要的东西从JSON_CONTAINS开始 https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html#function_json-contains
这显然符合你提供的例子。