ВЫБЕРИТЕ, затем ОБНОВИТЬ в MYSQL - PullRequest
0 голосов
/ 01 октября 2019

Я выбираю первую самую высокую временную метку в моих данных и хочу обновить вторую самую высокую временную метку, основываясь на дате моей самой высокой временной метки. это выглядит так.

Таблица с датами

id        date_created            date_updated
1       2019-10-01 1:00:00        0000-00-00 0:00:00
2       2019-10-01 2:00:00        0000-00-00 0:00:00

Я уже могу выбрать вторую наивысшую дату, которая является 2019-10-01 1:00:00

ЗДЕСЬ мой запрос для ее выбора.

SELECT MAX(date_created),date_updated
  FROM dated
  WHERE date_created < (SELECT MAX(date_created)
  FROM dated)

Моя проблема в том, как я могу обновить данные столбца date_updated, которые я выбрал в своем запросе, чтобы получить значение самой высокой даты, равной 2019-10-01 2:00:00

Ответы [ 2 ]

1 голос
/ 01 октября 2019

SQL DEMO

 UPDATE dated
 SET date_updated = (SELECT MAX(date_created) 
                     FROM (SELECT date_created
                           FROM dated) as t
                    )
 WHERE date_created = ( SELECT MAX(date_created)
                        FROM (SELECT date_created
                              FROM dated) as t
                        WHERE date_created < (SELECT MAX(date_created) 
                                              FROM (SELECT date_created
                                                    FROM dated) as t)
                      )
0 голосов
/ 01 октября 2019

Попробуйте это

UPDATE DATED
SET DATE_CREATED = (SELECT MAX(DATE_CREATED) FROM DATED)
WHERE DATE_CREATED = (SELECT MIN(DATE_CREATED) FROM DATED)

(не тестировалось)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...