2012-03-16 2 views
0

У меня есть таблица mysql, называемая ей как «R», которая содержит много полей, но меня беспокоит только одно поле, которое оно «отправляет по электронной почте». Электронная почта содержит адрес электронной почты, в котором будут указаны повторяющиеся записи. Теперь я хочу проверить наличие повторяющихся записей, и подсчет должен увеличиться на 1 для каждого уникального адреса электронной почты, а реплицированные электронные письма не должны учитываться.проверка и удаление повторяющихся данных в ruby ​​on rails

Как реализовать эту логику.

Пожалуйста, помогите мне. Я новичок в рубине на рельсах мира !!!

+0

Это таблица, относящаяся к пользователю? Или фактические пользователи. Таблица? Ответ отличается в зависимости. – TomDunning

+0

Его просто другая таблица с несколькими полями, электронная почта состоит из идентификатора пользователя электронной почты. Это оно –

ответ

2

Если вы просто пытаетесь подсчитать количество уникальных адресов электронной почты для таблицы my_table, и если вы создали модель ActiveRecord для него (которая будет называться MyTable), попробуйте:

MyTable.count(:email_address, :distinct => true) 

Это будет выполняться базовый SQL, который выглядит следующим образом:

SELECT COUNT(DISTINCT `my_table`.`email_address`) FROM `my_table` 

Это вернет номер в обоих случаях.