【问题标题】:Filter where date in JSON field - Eloquent过滤 JSON 字段中的日期 - Eloquent
【发布时间】:2020-07-16 10:43:46
【问题描述】:

让我们看看这个截图:

我有一个“日期”字段,它是一个 JSON 字段,以 eloquent 模型投射的数组。

因此,我想过滤比该字段中列出的日期之一更早或更晚的行。我试过这样的东西,但它返回空集合:

$q->where('dates->day', '>=', Carbon::now()->format('Y-m-d'));

有什么想法吗?谢谢!

【问题讨论】:

  • 你试过q->whereDate('dates->day', '>=', Carbon::now()->format('Y-m-d')); ?
  • dates 中的 JSON 对象包含在一个数组中。如果您使用的是 MySQL,则在使用 JSON_CONTAINS 时不支持更大或更少的符号。如果您使用{"day": "2020-09-21"} 而不是[ {"day": "2020-09-21"} ],您应该会得到预期的结果。
  • @dbf 我做不到,是一个数组
  • 那么使用 MySQL 的 SQL 将无法解决这个问题。另一方面,Postgre 使用 jsonb 数据类型要好得多。

标签: laravel eloquent


【解决方案1】:

查看日期->日期格式

“日期”:{ “天”:“2020-12-12” }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-07
    • 2021-09-30
    • 2010-12-15
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 2014-09-28
    • 2012-02-12
    相关资源
    最近更新 更多