Я пытался создать работу с поиском результатов, используя текстовое поле, содержащее дату (ГГГГ-ММ-ДД), где оно должно приносить мне только 1 результат за каждый месяц.
Например:
Если у них есть две или более записи с датами одного и того же месяца, даже если это разные дни, должна быть возвращена только первая запись месяца.
Проблема в том, что когда я запускаю команду на консоли, она выполняет мой запрос точно так же, как и должна, когда он выполняется через действие, Rails генерирует другой SQL.
Я уже пробовал это:
1) Model.select("DISTINCT DATE_FORMAT(date_column, '%Y-%m') as date").where(id: model_id)
2) Model.select("DATE_FORMAT(date_column, '%Y-%m') as date").where(id: model_id).distinct
Консольный запрос:
1 и 2 возвращают один и тот же запрос
SELECT DISTINCT DATE_FORMAT(date_column, '%Y-%m') as date FROM model WHERE model.id = 1
Запрос на действие:
1) SELECT COUNT (*) FROM model WHERE model.id = 1
2) SELEC DISTINC id FROM model WHERE model.id = 1
Что я делаю неправильно или как я могу правильно выполнить поиск?
Я использую:
Рельсы 4
MariaDB
единорог
IRB