Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: [MYSQL] eliminazione

  1. #1

    [MYSQL] eliminazione

    Salve, per far sì che un db non si riempia a dismisura, devo cancellare tutti i record apparte gli ultimi 200 ad esempio...
    come si fà?
    [ditemi chè una seplice query del tipo:
    DELETE ...... LIMIT ...,...]
    pleaseee... + veloci possibile

  2. #2
    sei fortunato...

    http://dev.mysql.com/doc/refman/5.0/en/delete.html

    DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]


    The MySQL-specific LIMIT row_count option to DELETE tells the server the maximum number of rows to be deleted before control is returned to the client. This can be used to ensure that a given DELETE statement does not take too much time. You can simply repeat the DELETE statement until the number of affected rows is less than the LIMIT value.

  3. #3
    non troppo volevo con la limit io... senza where

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    select id from tabella order by id desc limit 200,1

    ricavi l'id e poi elimini i record con valore minore o uguale a quello

    delete from tabella where id <= quello_della_select

  5. #5
    non mi ricordo più, dentro il WHERE mi ricordo che si poteva mettere 1 Week o 1 Month, ma esattamente com'era?
    tipo estrarre tutti i dati con il campo data più vecchio di un mese a partire da oggi

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da zannas
    non mi ricordo più, dentro il WHERE mi ricordo che si poteva mettere 1 Week o 1 Month, ma esattamente com'era?
    tipo estrarre tutti i dati con il campo data più vecchio di un mese a partire da oggi
    Non è la stessa cosa che chiedevi all'inizio.

    select * from tabella where campo_data < curdate() - interval 1 month

  7. #7

  8. #8
    Originariamente inviato da zannas
    non troppo volevo con la limit io... senza where
    le cose tra [ ] sono opzionali....

  9. #9
    Originariamente inviato da nicola75ss
    select id from tabella order by id desc limit 200,1

    ricavi l'id e poi elimini i record con valore minore o uguale a quello

    delete from tabella where id <= quello_della_select
    Sono bloccato, mi serve esattamente la stessa cosa:

    $sql = 'SELECT message_id FROM ' . SHOUT_TABLE . ' ORDER BY message_id DESC LIMIT 5,1';
    'DELETE FROM ' . SHOUT_TABLE . ' WHERE message_id <= .....???

  10. #10

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.