Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    DELETE QUERY un po' particolare.

    Salve,
    dovrei fare una query tipo DELETE in questo modo:

    HO una tabella con un certo numero di righe caratterizzate da un campo id tipo int primary key auto incremental.

    Dovrei cancellare tutte le righe della tabella tranne le ultime 15 più recenti...

    Quindi con mysql_num_rows recupero il numero di righe diciamo $all_rows

    $step = $all_rows-15;
    DELETE FROM blablabla LIMIT 15,$step ORDER BY id DESC

    ------
    Che dite...
    Funzionerà così ?

  2. #2

    Re: DELETE QUERY un po' particolare.

    Originariamente inviato da beta_persei
    Salve,
    dovrei fare una query tipo DELETE in questo modo:

    HO una tabella con un certo numero di righe caratterizzate da un campo id tipo int primary key auto incremental.

    Dovrei cancellare tutte le righe della tabella tranne le ultime 15 più recenti...

    Quindi con mysql_num_rows recupero il numero di righe diciamo $all_rows

    $step = $all_rows-15;
    DELETE FROM blablabla LIMIT 15,$step ORDER BY id DESC

    ------
    Che dite...
    Funzionerà così ?
    di certo no. se non fosse altro che per l'ordine delle istruzioni.

    potresti provare in questo modo:

    codice:
    set @limite = (select id from tabella
                         order by di desc
                         limit 15, 1);
    
    delete from tabella where id <= @limite");
    ovviamente prova su una copia. Le query vanno eseguite una di seguito all'altra. Stessa finestra query se usi phpmyadmin per provare.

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

  3. #3
    ma sicuro che la sintassi e' quella?
    Per esempio: quando chiudi le virgolette dove le hai aperte?

  4. #4
    Originariamente inviato da beta_persei
    ma sicuro che la sintassi e' quella?
    Per esempio: quando chiudi le virgolette dove le hai aperte?
    toglile .... sono rimaste appiccicate, ho preso la query da uno script php

    codice:
    set @limite = (select id from tabella
                         order by di desc
                         limit 15, 1);
    
    delete from tabella where id <= @limite;

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

  5. #5
    mhm...
    non va. Purtroppo non funge. non elimina nulla...

  6. #6
    ok.
    ho risolto in altro modo. grazie lo stesso

  7. #7
    Originariamente inviato da beta_persei
    mhm...
    non va. Purtroppo non funge. non elimina nulla...
    dipende da come esegui la sequenza delle due query. da shell, php o phpmyadmin sono tre modi diversi.

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

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