Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 6.039 pregleda

Najnovija ↓

kako izbaciti duplikate 04.10.2002. u 14:01 · pre 293 meseca #1
mysql pitanje

Recimo imama tabelu u kojoj index kolonu sa 1, 2, 3, 4, 4, 5, 5, 5, 6, 7, 8, 8, 9, 9, 9, 10...

I sada hocu da izbacim duplikate redove sve 4, 5, 5, 8, 9, 9..
Re: kako izbaciti duplikate 05.10.2002. u 14:43 · pre 293 meseca #2
U normalnim relacionim bazama podataka (Oracle, MSSQL, Informix, Firebird) ... mozes da uradis ovo:

delete from tabela t1 where 1 <> (select count(*) from tabela t2 where t1.id = t2.id)


Ali mysql je prilicno jadan za iole komplikovanije stvari. Najbolje da napises php program koji ce da isbrise suvisne redove...
Potpis
Milan Babuškov
http://www.guacosoft.com/
Re: kako izbaciti duplikate 07.10.2002. u 09:33 · pre 293 meseca #3
Stvarno ne znam sta hoces reci sa "izbacim" ?

ali ukoliko ne zelis ih obrisati iz tabele nego sam da u query ne dobijes
duplikate, onda mozes iskoristiti DISTINCT

a ukoliko zelis spreciti unos duplikata onda postavi Primary Key na istoj koloni, ili samo dodaj UNIQUE constraint.
Potpis
People who think they know everything tend to irritate those of us who do.
Re: kako izbaciti duplikate 07.10.2002. u 13:49 · pre 293 meseca #4
Da bi izbacio i /ili sprecio dalji unos duplikata u neku kolonu, nepophodno je da ta kolona bude definisana kao "unique" ili "primary key". Obzirom da ti to verovatno nisi ucinio prilikom kreiranja tabele, posao ce odraditi sledeci MySQL query:

ALTER IGNORE TABLE ime_tabele CHANGE COLUMN staro_ime_colone novo_ime_colone SMALLINT UNSIGED NOT NULL PRIMARY KEY;

U slucaju da vec imas jedan primary key u datoj tabeli, onda moras koristiti UNIQUE umesto primary key u datom upitu.

Btw, komentar gospodina mbabuskov o MySQL-u nema blage veze sa realnoscu, ali mislim da je o tome vec dovoljno pisano na ovom istom forumu.

pozdrav
D
Potpis
Caught in a Web|Blogodak


Re: kako izbaciti duplikate 07.10.2002. u 13:57 · pre 293 meseca #5

Citat:
Da bi izbacio i /ili sprecio dalji unos duplikata u neku kolonu, nepophodno je da ta kolona bude definisana kao "unique" ili "primary key". Obzirom da ti to verovatno nisi ucinio prilikom kreiranja tabele, posao ce odraditi sledeci MySQL query.


Mislim da je covek pitao Kako da izbaci redove. Dakle, kako da ih izbrise. Ok, ako je MySQL tako dobar, pokazite mi upit koji moze da izbrise duplikate iz tabele. (Pa moci ce jednog dana kada bude podrzavao pod-upite ili stored procedure) da do tada treba zasukati rukave. :)

Riste je dao predlog za SELECT DISTINCT, ali onda a imas redove koji nisu identicni, vec im je samo kolona id ista, dobijas opet duplikate.

Dakle, branioci MySQL-a, ocekujem vas odgovor, po mogucnosti u SQL jeziku.
Potpis
Milan Babuškov
http://www.guacosoft.com/
Re: kako izbaciti duplikate 07.10.2002. u 14:12 · pre 293 meseca #6
Odgovor na tvoje pitanje je ALTER IGNORE ... SQL query iz mog prethodnog posta. Dakle on ce iz te postojece tabele izbrisati sve duplikate.

Sto se tice podupita, transakcija, stored procedura, pogleda i sl. skokni malo na www.mysql.com ili jos bolje na https://www.elitesecurity.org/t2953 pa ces videti da novije verzije MySQL-a to vec podrzavaju.
Potpis
Caught in a Web|Blogodak


Re: kako izbaciti duplikate 07.10.2002. u 19:41 · pre 293 meseca #7
Pa da je MySQL mogao da svari sve te stvari, onda ne bi bio toliko lak za rad i ne bi ga imao svaki web hosting provider :), i nije bi imao toliko velike korisnicke baze .... sto znaci ... kad vec zelis da uporedjujes, jedino ga mozes uporediti sa MS access-om :), ali za seriozne poslove ... samo mozes lupati glavu od dzid jedno mesec dana i onda portovati aplikaciju na neku drugu bazu :)

Been there, done that.
i ja sam nekad (jos dok sam bio mlad i blesav) mislio da je MySQL fenomenalan, dok nisam otkrio stored procedure, subselecte i cursore ....
Potpis
People who think they know everything tend to irritate those of us who do.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme