Laravel Eloquent:从JSON列的值过滤

3

我接手了一个项目,他们在JSON列中存储了date_start的值。

(例如,id,name,some_column,meta)
其中meta的值为{ propert1, property2, property3, "date_start": "2021-09-26",等等...}

现在,在前端,我需要制作一个搜索功能,其中我选择一个日期。

现在,在后端,由于date_start的值已经存储在json列中,我认为我需要先获取所有记录,然后循环遍历它们并解码meta字段。

这样做总体上是不好的吗?还是有其他方法?

1个回答

10

现代数据库的版本通常支持JSON列类型。这些JSON列可以使用SQL查询。

users表中的preferences列:

{"dining": {"meal": "salad", "time": "20:00"}}

查询:

$users = DB::table('users')
                ->where('preferences->dining->meal', 'salad')
                ->get();

请查看Laravel文档中关于JSON Where条件子句的说明:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接