如何查询数据库以查找包含来自多选 (Laravel) 的 json 数据的列中的元素

Posted

技术标签:

【中文标题】如何查询数据库以查找包含来自多选 (Laravel) 的 json 数据的列中的元素【英文标题】:How to query the DB to find an element inside a column that contain a json data from a multi select (Laravel) 【发布时间】:2018-08-08 03:00:42 【问题描述】:

这是我的“属性”数据库列数据中的内容:

["last","featured","disabled"]

我尝试在查询中添加类似

->whereRaw('FIND_IN_SET(?,attrib)', ['featured'])

但它不起作用......

更新 我已经解决了:

$featured = Course::where('attrib', 'like', '%featured%')->get();

但我仍在寻找不使用“LIKE”的更好查询。

【问题讨论】:

【参考方案1】:

你可以在你的模型中使用 whereIn()

$attrib=["last","featured","disabled"];
->whereIn('attrib',[$attrib])->get();

【讨论】:

这个解决方案对我不起作用。 $featured = Course::whereIn('attrib',['featured'])->get();空结果+

以上是关于如何查询数据库以查找包含来自多选 (Laravel) 的 json 数据的列中的元素的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 和雄辩的返回结果来自多对多关系

如何优化多表连接视图以获得更快的响应?

如何使用从 laravel 中的数组中获取的各种术语进行 mysql 关联查询

如何在 graphQL 片段中定义可选字段以进行查询

如何获取单选按钮的值并将其传递给 laravel 中的控制器?

PromQL 查询以选择其值包含在给定的多选变量中的指标