identificarea linii identice dintr un tabel(o neclaritate )
Moderatori: Zamolxe, Moderatori
-
mandriva2007
- Senior Member
- Mesaje: 254
- Membru din: Mar Oct 02, 2007 2:26 pm
identificarea linii identice dintr un tabel(o neclaritate )
Ultima oară modificat Sâm Ian 19, 2008 1:48 am de către mandriva2007, modificat 1 dată în total.
- gabysolomon
- Senior Member
- Mesaje: 743
- Membru din: Dum Apr 09, 2006 11:39 am
- Localitate: Bacau
- Contact:
daca sunt toate informatiile identice nu poate sa le stearga :) pur si simplu ca baza de date nu stie pe care dintre ele sa o lase acolo .. Orice ai pune in clauza WHERE, conditiile de cautare sunt identice si valabile pentru ambele linii duplicat.
Poti sa copiezi tabela intr-o alta tabela noua adaugand un camp (id - autoincrement), dupa care rulezi un filtru sa-ti zica care anume linii ai informatie duplicat si doar ID-uri diferite. Abia atunci selectezi o linie care ramane si stergi liniile duplicat unde id-ul difera de cel selectat.
Poti sa copiezi tabela intr-o alta tabela noua adaugand un camp (id - autoincrement), dupa care rulezi un filtru sa-ti zica care anume linii ai informatie duplicat si doar ID-uri diferite. Abia atunci selectezi o linie care ramane si stergi liniile duplicat unde id-ul difera de cel selectat.
Join The Forums - Time Well Wasted!
- mihaitha
- Senior Member
- Mesaje: 2383
- Membru din: Vin Mai 04, 2007 12:40 pm
- Localitate: Sibiu
- Contact:
Nu stiu daca merge la fel in Pg, dar in MySQL o faci asa:
[php]<?
$q = mysql_query('SELECT nume, suma, regiune, COUNT(*) as count FROM tabela GROUP BY nume, suma, regiune');
while ($r = mysql_fetch_object($q))
mysql_query('DELETE FROM tabela WHERE nume = \'' . $r->nume . '\' AND suma = \'' . $r->suma . '\' AND regiune = \'' . $r->regiune . '\' LIMIT ' . ($r->count - 1));
?>[/php]
Cred ca o poti porta linistit in PG cu aceleasi sintaxe, numai nu stiu cum se comporta PG la GROUP BY. Anyway, fa un backup la tabela inainte, de siguranta. Sporuri.
[php]<?
$q = mysql_query('SELECT nume, suma, regiune, COUNT(*) as count FROM tabela GROUP BY nume, suma, regiune');
while ($r = mysql_fetch_object($q))
mysql_query('DELETE FROM tabela WHERE nume = \'' . $r->nume . '\' AND suma = \'' . $r->suma . '\' AND regiune = \'' . $r->regiune . '\' LIMIT ' . ($r->count - 1));
?>[/php]
Cred ca o poti porta linistit in PG cu aceleasi sintaxe, numai nu stiu cum se comporta PG la GROUP BY. Anyway, fa un backup la tabela inainte, de siguranta. Sporuri.
-
mandriva2007
- Senior Member
- Mesaje: 254
- Membru din: Mar Oct 02, 2007 2:26 pm
raspuns
multumesc oricum .merge si in pg.da e vorba de niste key pe tabela ,constrainturi,dar a mniste probleme cu ele.era simplu cu vi editorul din linux.le exportam alea in alt fiser le stergeam pe alea duplicate din tabela si dupa ia o comanda de unloud from fisierumeu.txt to cu vi editorul si le importam din nou in tabel de data asta era uimportat daor campul acela care se repeta.mersi inca odata si numai bine.
-
mandriva2007
- Senior Member
- Mesaje: 254
- Membru din: Mar Oct 02, 2007 2:26 pm
-
mandriva2007
- Senior Member
- Mesaje: 254
- Membru din: Mar Oct 02, 2007 2:26 pm
mersi mult
e ca si cum acolo as avea un comentariu care nue compilat.
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 18 vizitatori
