【发布时间】:2021-06-02 17:39:44
【问题描述】:
我试图从 Laravel 的 MySql 表中的 JSON 字符串数据中获取搜索结果。
这是我的 JSON 字符串数据
{
"Thursday": {
"status": true,
"start": "09:00",
"end": "18:00"
},
"Sunday": {
"status": false,
"start": "09:00",
"end": "18:00"
},
"Saturday": {
"status": false,
"start": "09:00",
"end": "18:00"
},
"Monday": {
"status": true,
"start": "09:00",
"end": "18:00"
},
"Friday": {
"status": false,
"start": "09:00",
"end": "18:00"
},
"Tuesday": {
"status": false,
"start": "09:00",
"end": "18:00"
},
"Wednesday": {
"status": false,
"start": "09:00",
"end": "18:00"
}
}
我想将此数据搜索到 JSON 字符串中,如果匹配则返回结果。
{
"status": true,
"start": "09:00",
"end": "18:00"
}
我使用 Laravel 尝试以下查询
$query->whereJsonContains('training_availability', [['Thursday' => ['start' => '09:00']]]);
但我不想在 JSON 中使用 day,直接从 value 中搜索没有 days。
任何人都可以提供帮助。
【问题讨论】:
-
似乎
whereJsonContains不支持模式路径...创建存储MySQL 过程,提取包含提供的"key":"value"的单独对象,并使用它。 -
你能举个例子吗? @Akina
-
要么编辑您的问题并删除与 Laravel 相关的所有内容,要么为纯 SQL 解决方案搜索创建新问题。并指定精确 MySQL 版本。
标签: php mysql json laravel phpmyadmin