Kwerenda MySQL do aktualizacji rekordów o zwiększonej dacie
próbuje
uzyskać najnowszą datę w bazie danych, ina podstawie tej daty zaktualizuj każdy rekord, który maNULL
data, zwiększając datę o 1 dzień.Mogę uzyskać najnowszą datę za pomocąOstateczny termin zapytanie poniżej. Muszę to zrobić najpierw, ponieważ daty w tabeli sąnie w porządku. W razie potrzeby mogę uruchomić to zapytanie, ręcznie zapisać je, a następnie uruchomićUPDATE
zapytanie oparte na tej dacie. Wolałbym uruchamiać wszystko bez ręcznego procesu.
Ostatnie zapytanie, które mam na dole pytania, to mojezapytanie testowe za próbę aktualizacji dat, jednak nie miałem szczęścia, żeby to zadziałało.
Tabela (daty nie są w porządku)
id date
----- ----------
10500 2013-08-18
10501 2013-08-16
10502 2013-08-17
10503 2013-08-19
10504 NULL
10505 NULL
...
11800 NULL
11801 NULL
Wybór najnowszej daty (punkt początkowy dlaUPDATE
)
SELECT date
FROM my_table
ORDER BY date DESC
LIMIT 1
AktualizacjaNULL
Daktyle (nie działa)
UPDATE my_table
SET date = DATE_ADD((SELECT date FROM my_table ORDER BY date DESC LIMIT 1), INTERVAL 1 DAY)
WHERE date IS NULL
ORDER BY id ASC
Jak mogę to osiągnąć? Czy to nie jest możliwe?