Сравнить дату с каждым значением массива mysql json в laravel

#php #mysql #json #laravel

#php #mysql #json #laravel

Вопрос:

Mysql 5.7

Массив Mysql JSON содержит список дат в specific_dates поле ТАБЛИЦЫ, как указано ниже:

введите описание изображения здесь

Я хочу сравнить (>=) все указанные выше даты с заданной датой. Я пробовал следующий запрос в laravel, но не работает.

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

Здесь $value будет yyyy-mm-dd формат. e.g. 2020-04-02 .

Оно должно возвращаться, если $value равно или меньше любого значения массива JSON. Спасибо

Комментарии:

1. предоставьте некоторый код и json

2. там нет ничего, кроме приведенного выше кода. какой код / json вы хотите?

3. Я застрял с точно такой же проблемой, вы нашли решение?

Ответ №1:

Попробуйте это. Это может вам помочь.

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

Комментарии:

1. Не работает, bcs, с которым я хочу сравнить большее / меньшее (>= ИЛИ <=) $value .