- Home
- Categorie
- Coding e Sistemistica
- PHP
- Count - eliminare dopo record 400
-
Count - eliminare dopo record 400
Salve a tutti, scusate il title un pò criptico, spero di riuscirmi a spiegare meglio nel thread.
Purtroppo non sono un fenomeno, e mi trovo di fronte un problema (probabilmente facile) che non riesco a risolvere.
In pratica ho una sorta di forum molto popolato, e ogni thread ha più di 1.000 messaggi all'interno. Quello che vorrei fare è sfoltirlo un pò, lasciando, in ogni 3D, solo gli ultimi 400 messaggi.
Come posso fare?
Io avevo pensato sicuramente di partire con una select e identificare tutti i 3d che hanno più di 400msg ... ma poi ?
NB: Ho mysql 4.1.
Grazie mille
-
prova a fare query di questo genere:
delete from tabmessaggi where id not in (select id from tabmessaggi where id_discussione = '.$idDiscussioneIndividuata.' order by id desc limit 0,400);
chiaramente la query dovrai metterla in un ciclo che prende in esame tutte le discussioni che hanno più di 400 messaggi:
select id_discussione from (select id_discussione, count(id) as numero from tabmessaggi group by id_discussione) as a where numero>400
per ogni ciclo esegui la prima query che dovrebbe cancellare i dati.
ATTENZIONE: ho scritto le query di getto senza provarle, stai attento ad usarle!!!
-
Ciao Tymba grazie innanzitutto per la risposta.
Purtroppo il mio mysql non supporta le subquery
-
se non puoi usare subquery trasforma il tutto in query e cicli php.
usare le subquery è comodo ma puoi sempre trasformare il tutto (con attenzione) in cicli nidificati e memorizzare in modo temporaneo gli id che ti servono in array.
buon divertimento.
-
@Tymba said:
se non puoi usare subquery trasforma il tutto in query e cicli php.
usare le subquery è comodo ma puoi sempre trasformare il tutto (con attenzione) in cicli nidificati e memorizzare in modo temporaneo gli id che ti servono in array.
buon divertimento.
Era proprio quello che non sapevo fare
Ci proverò cmq.
Grazie