SQL Rails 4, генерируемый консолью, отличается от выполняемого действием - PullRequest
1 голос
/ 14 марта 2019

Я пытался создать работу с поиском результатов, используя текстовое поле, содержащее дату (ГГГГ-ММ-ДД), где оно должно приносить мне только 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

...