将日期与laravel中mysql json数组的每个值进行比较

Posted

技术标签:

【中文标题】将日期与laravel中mysql json数组的每个值进行比较【英文标题】:Compare date with each value of mysql json array in laravel 【发布时间】:2021-01-11 10:54:58 【问题描述】:

mysql 5.7

Mysql JSON 数组包含 TABLE 的 specific_dates 字段中的日期列表,如下所示:

我想将以上所有日期与给定日期进行比较(>=)。我在 laravel 中尝试了以下查询,但没有工作。

->whereRaw('JSON_EXTRACT(`specific_dates`, "$[*]") >= ?', $value);

在这里,$value 将是 yyyy-mm-dd 格式。 e.g. 2020-04-02.

如果$value 等于或小于 JSON 数组的任何值,它应该返回。 谢谢

【问题讨论】:

提供一些代码和json 没有比上面给出的代码更多的了。你想要哪个代码/json? 我遇到了完全相同的问题,您找到解决方案了吗? 【参考方案1】:

试试这个。可能对你有帮助。

->where(function ($query) use($value) 
     $query->whereRaw("find_in_set('" . $value . "',specific_dates)");   
);
       

【讨论】:

不工作,我想将更大/更少 (>= 或 $value 进行比较。

以上是关于将日期与laravel中mysql json数组的每个值进行比较的主要内容,如果未能解决你的问题,请参考以下文章

ErrorException 数组到字符串的转换 Laravel - 将 JSON 导入 MySQL

laravel:JSON 字段与数组的比较

如何将Laravel输出的日期格式更改为JSON?

Laravel 路由上的 Ajax 调用,返回一个包含 ChartJS 标签日期的 json 编码数组

PHP,Laravel:从 JSON 中消除特定的复杂数组

在 MySQL JSON 字段中的数组中搜索值(Laravel/Lumen)[重复]