Mysql выбрать адреса которых небыло ранее по дате

262
15 ноября 2017, 02:11

Есть таблица c email (mail) пользователей и временем добавления записи email в формате timestamp (timepoint).

Можно ли через select выбрать за текущий день только те адреса из mail, которые будут уникальными, т.е новыми и ранее не встречались. Получается видимо вложенный select, в котором сначало нужно выбрать за текущий день, а потом проверить их на уникальность. Как в PHP это сделать я знаю, но можно ли решить вопрос на уровне mysql ?

Answer 1

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

SELECT
  eml.`mail`
FROM
  emails eml
WHERE
  eml.`timepoint` >= CURRENT_DATE() AND
  NOT EXISTS (
    SELECT
      1
    FROM
      emails sub
    WHERE
      sub.`mail` = eml.`mail` AND
      sub.`timepoint` < eml.`timepoint`
  )

Данный запрос предполагает, что нет двух адресов с одинаковым значением timepoint. Если же это не верно, то строку

sub.`timepoint` < eml.`timepoint`

лучше заменить на

sub.`id` < eml.`id`

где id - уникальный автоинкрементный идентификатор. При условии, что при сортировке записей по полю id значения timepoint не убывают

Answer 2

выбрать за текущий день только те адреса из mail, которые будут уникальными, т.е новыми и ранее не встречались

UPDATE:

@Akina - за сегодня может быть 2 записи с одинаковым email – Dima Kuzmin 13 секунд назад

SELECT email
FROM mail
GROUP BY email
HAVING DATE(MIN(timepoint)) = CURRENT_DATE
READ ALSO
RedBeanPHP - нет соединения с БД

RedBeanPHP - нет соединения с БД

Оба сайта на одном локхостинге - на одном RedBeanPHP соед

281
Yii2 повторное использование кода

Yii2 повторное использование кода

На стороне контроллера получаю данные и отправляю их в виде массивов в видВ виде из массива начинаю делать карточки товаров

264
Получение значения href при парсинге

Получение значения href при парсинге

Делаю парсер при помощи Symfony/Domcrawler и есть необходимость получить значение href некоторых элементовКак это сделать?

229
Нужна помощь в установке композера

Нужна помощь в установке композера

Недавно наткнулся на composer, а установить не могу, командную консоль никогда не использовалУстановка с офф

298