Как бы восстановить следующий запрос в Rails, чтобы он возвращал количество обработанных строк?Mysql to Rails SQL-запрос
self.connection.execute('DELETE FROM `cd_artist`
LEFT JOIN `cdpedia` ON cd_artist.id = cdpedia.`artistId`
WHERE artistId IS NULL;')
Я понимаю, что я должен использовать что-то вроде Artist.find_by_sql
для того, чтобы вернуть что-то, но это дает мне ошибку.
Возможно, есть более элегантный способ сделать это?
Я хочу, чтобы избежать рельсов пути первого поиска в базе данных, а затем захвата идентификаторов и удалении записей с Object.destroy
или даже Object.delete(id)
поскольку вызов SQL намного быстрее (если у вас есть правильные индексы), но я Любопытно, что «правильный» способ сделать это.
Ваш запрос кажется неправильным. Вы уже тестировали его непосредственно в своей базе данных? – basgys