Laravel получает только обновленные строки в диапазоне дат - используя WhereBetween и Where в запросе - PullRequest
1 голос
/ 09 июля 2019

У меня есть таблица заданий в базе данных со столбцами по умолчанию create_at и updated_at .

Я хочу вернуть количество созданных рабочих мест и обновленное число.

Однако, поскольку столбец updated_at заполняется в точке создания, я хочу исключить все задания, в которых значение updated_at совпадает со значением create_at (чтобы получить только те задания, которые были обновлены с момента создания).

Я использую следующий код, чтобы получить количество обновленных заданий за промежуток времени.

  $jobsUpdated = Job::where('id', $id)
            ->whereBetween('updated_at', [$value['fromDate'], $value['tillDate']])
            ->count();

Как добавить другое предложение where, чтобы исключить те результаты, которые имеют то же значение, что и create_at.

Теоретически что-то вроде:

            ->andWhere('updated_at', '!=' , 'created_at')

Но и нигде не существует, так что это просто для того, чтобы показать мое мышление.

Спасибо!

1 Ответ

0 голосов
/ 09 июля 2019
    $jobsUpdated = Job::where('id', $id)
           ->whereBetween('updated_at', [$value['fromDate'], $value['tillDate']])
           ->whereColumn('updated_at', '!=' , 'created_at')
           ->count();

для сравнения значения столбца используйте функцию whereColumn(), на которую ссылается официальный doc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...