Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    425

    [Mysql] elimnare record più vecchi mantenendo sempre il più giovane

    ciao a tutti,
    non volevo fare il passaggio con PHP quindi magari con una query riesco a fare tutto

    ho una tabella esportazione
    codice:
    IDEXPORT (chiave)
    DataExport
    TipoExport
    DataEsecuzione
    che in pratica registro determinate operazioni di esportazioni

    io vorrei cancellare le registrazioni più vecchie di 100 giorni (e la query la eseguo ad ogni login al sito) ma devo sempre tenerne almeno 1 cioè l'ultima fatta

    ovvero se ho 3 registrazioni
    2019-09-01
    2019-08-01
    2019-07-01

    e non faccio esportazioni per più di 100 giorni la query comunque viene eseguita tutti i giorni andando a eliminare anche l' ultima di settembre cosa che non voglio.

    ho provato questa query
    DELETE from esportazione WHERE (curdate() > dataexpo + INTERVAL 100 DAY) order by dataexpo desc LIMIT 1"
    ma non credo sia corretta perché comunque elimino sempre la più vecchia ma prima o dopo andrò a cancellare anche la più recente



    riuscite ad aiutarmi?
    grazie
    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  2. #2
    aggiungi alla WHERE

    ... AND IDExport != (SELECT IDExport FROM esportazioni ORDER BY dataexpo DESC LIMIT 1) ...

    così ti cancella tutto tranne la più recente anche se più vecchia di 100 gg

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    425
    mmm quindi la query diventerebbe (ho cambiato alcuni nomi di campi)

    DELETE from esportazione WHERE exporttipo=3 and (curdate() > dtregistrazioni + INTERVAL 100 DAY) and idexpo != (SELECT idexpo from esportazione where exporttipo=3 ORDER BY dtregistrazioni DESC LIMIT 1)
    ma l'' errore che da è
    You can't specify target table 'esportazione' for update in FROM clause

    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  4. #4

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.