[gl-como] Query MySql/Php

Diego Zanga naarani@gmail.com
Ven 16 Feb 2007 10:29:14 CET


Il 16/02/07, Carlo Filippetto<carlo.target@tiscali.it> ha scritto:
> Alla fine lo farņ col php..
> query normale in cui estraggo tutti i cod_id
> poi li elaboro tirando fiori tutti i valori e li confronto, se ci sono
> doppioni elimino!!
>
> Fine
>
> Cmq quello che non avevo capito della tua query era:
> creare un "id" al volo -> cod_id + "_" + date + in + out

ok, riproviamo cosi' allora :-) :

se fai
select concat( cod_id, date, in, out) from XXXXX
hai l'elenco completo dei dati della tabella, espressi
in un'altra forma, che pero' supporta il comando DISTINCT
quindi,

select distinct concat( cod_id, date, in, out) from XXXXX
cosi' ora ottieni i dati secondo il criterio di IN=OUT per
date e cod_id uguale, una sola volta (ottieni anche i
dati dove IN <> OUT, gli unici che perdi sono i doppioni
in cui IN = OUT)

select distinct concat( cod_id, '_',date,'_', in,'_', out) from XXXXX
con questa select i record che ottieni sono qualcosa tipo
1_23/12/2007_900_900
2_13/1/2007_10_9
2_13/1/2007_1_1

da questo testo puoi individuare il valore di cod_id,
data, in ed out, la via per cancellarei doppioni e'
ancora lunga da qui :-/ anche perche' dovresti
invece di cancellare i doppioni, creare una nuova
tabella con i soli record che rispettano i tuoi criteri
a partire da questa select

In sostanza, partendo da una select ci vuole una
vita per avere un'archivio che rispetti i criteri che
avevi indicato: sarebbe meglio usare un trigger,
che controlli ogni singolo record all'inserimento
verificando che non sia un "doppione" per cod_id
e data uguale, con IN=OUT

una cosa tipo

CREATE TRIGGER non_duplicare AFTER INSERT ON XXXX
    -> FOR EACH ROW
BEGIN
   IF (SELECT count() FROM inserted WHERE concat( new.cod_id,
new.date, new.in, new.out) like concat( cod_id, date, in, out) and
in=out ) > 1
     ROLLBACK
END

Questo trigger credo sia l'unico mezzo per avere il
database sempre "pulito" senza troppo sforzo.



cya
-- 
Diego Zanga
------------------------------
http://www.eLawOffice.it
http://www.blogstudiolegale.eu
http://www.javablog.eu
Skype NAARANI


Maggiori informazioni sulla lista gl-como