Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    483

    Elimina TOT records più vecchi

    ciao a tutti... avrei bisogno un aiuto su come scrivere una query...

    devo cancellare TOT records dalla mia tabella e questi TOT records devono essere i più vecchi... mi spiego meglio.. la mia tabella contiene due informazioni:

    - testo
    - data ( è il valore proveniente dalla funzione time() )

    con una select seleziono tutti i dati e poi verifico quante righe ci sono nella tabella con "mysql_num_rows"! io vorrei fare che se il numero delle righe è superiore per esempio a 1000 mi deve cancellare per esempio gli 800 record + vecchi... come devo scrivere la query in modo che faccia questo ? ??

    nn so proprio come fare....


    ciao

  2. #2
    codice:
    if ($numero_righe >= 1000){
      $del = "DELETE FROM tabella ORDER BY data ASC LIMIT 800";
      mysql_query($del)or die(mysql_error());
    }

    fai sempre un backup prima di cancellare così tanti dati tutti insieme, si sa mai che vadano persi dati importanti
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    483
    ... se mi si cancellanno dati importanti è colpa della query che mi hai scritto te

    .skerzo!!!

    grazie mille per l'aiuto!!!

    ciao

  4. #4
    Originariamente inviato da ipnotic
    ... se mi si cancellanno dati importanti è colpa della query che mi hai scritto te

    appunto per quello ti ho detto di fare il backup
    così io mi levo ogni responsabilità nell'eventuale perdita di dati


    comunque dovrebbe andar bene
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    483
    ho provato ma mi restituisce questo errore:


    You have an error in your SQL syntax near 'ORDER BY data ASC LIMIT 2' at line 1
    (ho messo 2 xke ora 800 record nn ne ho )

    why ???

  6. #6
    non lo so! posta la query completa che usi, io ne ho usata una simile su una mia tabella e funziona

    codice:
    DELETE FROM `Durate` ORDER BY `id_partita` ASC LIMIT 2
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    483
    questa è la query

    codice:
    $del = "DELETE FROM tab ORDER BY data ASC LIMIT 2";

    ho provato anke a prendere direttamente la tua e cambiarci i nomi ma mi da lo stesso errore


  8. #8
    Originariamente inviato da ipnotic
    questa è la query

    codice:
    $del = "DELETE FROM tab ORDER BY data ASC LIMIT 2";

    ho provato anke a prendere direttamente la tua e cambiarci i nomi ma mi da lo stesso errore

    Controlla la versione del tuo mysql.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    483
    La mi versione è ----> "MySQL 3.23.47-nt"

    è colpa della versione o di qualkosa d'altro ?

  10. #10
    è per la versione, l'order by lo puoi usare dalla ver 4.0.0 [http://dev.mysql.com/doc/mysql/en/delete.html]


    consiglio un aggiornamento
    anche perché la 3.23 è piuttosto vecchiotta


    p.s. in alternativa, per il tuo problema, fai una select che ti prende i record più vecchi e con un ciclo li cancelli, anche se non mi sembra una soluzione ottimale quando i record diventeranno molti
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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 © 2025 vBulletin Solutions, Inc. All rights reserved.