Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 22.10.2006, 17:42   #1
dziber
Novi član
 
Član od: 22.10.2006.
Poruke: 4
Zahvalnice: 0
Zahvaljeno 0 puta na 0 poruka
Određen forumom Mysql i delete max values...

Jel postoji komanda koja bi trazila najvecu vrednost polja i brisala sve ispod te vrednosti?
dziber je offline   Odgovor sa citatom ove poruke
Stara 22.10.2006, 21:25   #2
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Thumbs up Re: Mysql i delete max values...

Pa ne postoji SQL komanda koja bi automatski radila to što tebi treba već se to radi odgovarajućom konstrukcijom uslovnog „WHERE“ dela SQL komande „DELETE“.

Evo primera kako bi trebala da izgleda SQL upit koji bi trebalo da reši tvoj problem.
Citat:
SQL kaže:
DELETE FROM naziv_tabele
WHERE posmatrana_kolona < (SELECT MAX(posmatrana_kolona) FROM naziv_tabele)
LIMIT 1
Iskreno rečeno neznam zbog čega bi koristio ovakvu logiku rada sa bazom pošto mi se čini da pokušavaš da skladištiš rezultat obrade podatka u nju a ne same podatke što je jedna od velikih grešaka u dizajnu aplikacije tj. same baze.

Ako ti je potrebno da u svojoj aplikaciji koristiš samo zapise koje u odgovarajućem redu sadrže samo maksimalnu vrednost bolje rešenje ti je da koristiš samo jedan SELECT upit kao što je sledeći:
Citat:
SQL kaže:
SELECT kolone_koje_te_interesuju_razdvojene_zarezima
FROM posmatrana_tabela
WHERE posmatrana_kolona = (SELECT MAX(posmatrana_kolona)
FROM naziv_tabele)
LIMIT 1
Na ovaj način ćeš umesto veoma zahtevne „DELETE“ komande (koja zauzima poprilično resursa na SQL serveru u odnosu na ostale komande) i nepotrebnih upita dobiti recordset koji će da sadrži samo zapise sa maksimalnom vrednošću u posmatranoj koloni.

BTW, vodi računa o tome da oba upita mogu da imaju više rezultata pa moraš ili da dodaš neki dodatni uslov u „WHERE“ ili da koristiš „LIMIT“ onako kako misliš da ti najviše odgovara inače ćeš imati problem sa integritetom baze
holodoc je offline   Odgovor sa citatom ove poruke
Stara 23.10.2006, 18:52   #3
dziber
Novi član
 
Član od: 22.10.2006.
Poruke: 4
Zahvalnice: 0
Zahvaljeno 0 puta na 0 poruka
Određen forumom Re: Mysql i delete max values...

U redu ali kako da onda obrisem to sto izvrsi select komanda.

Nije mi najjasnije zato sto bi ja trebo da iz tabele izbrisem podatke.
Nesto sam cacko po netu i naso neke komande sa delete naredbom ali mi
ubije racunar izvrsavanje tenaredbe.

Da li bi mogao nekako sa tvojim primerom select naredbe koju si mi naveo
da precistim iz tabele te podatke koji mi ne trebaju?

I jel postoji nesto sto bi ubrzalo proces brisanja

hvala mnogo

Poslednja ispravka: dziber (23.10.2006 u 19:08)
dziber je offline   Odgovor sa citatom ove poruke
Stara 23.10.2006, 20:02   #4
Marko_L
Mythbuster
 
Član od: 2.11.2005.
Lokacija: Beograd
Poruke: 2.205
Zahvalnice: 38
Zahvaljeno 370 puta na 147 poruka
Slanje poruke preko ICQ-a korisniku Marko_L Slanje poruke preko MSN-a korisniku Marko_L Slanje poruke preko Yahooa korisniku Marko_L Slanje poruke preko Skypea korisniku Marko_L
Određen forumom Re: Mysql i delete max values...

Ako ćeš da brišeš onda koristiš onaj prvi upit koji si dobio, a ako samo hoćeš da prikažeš potrebne podatke koristiš ovaj drugi. Nema treće
Marko_L je offline   Odgovor sa citatom ove poruke
Stara 23.10.2006, 20:14   #5
dziber
Novi član
 
Član od: 22.10.2006.
Poruke: 4
Zahvalnice: 0
Zahvaljeno 0 puta na 0 poruka
Red face Re: Mysql i delete max values...

Ok.
Medjutim kad pokusam prvu nardbu izbacuje mi gresku kao ne mogu
ja da koristim from.
Ne znam sta znaci to ali da to nema veze sa podupitima.
Verzija mysql -a je 4.1
Da li je to kod mene podrzano.

I moze samo jos jedno pitanjce
da li mogu vise naredbi da spakujem u jedan batch file ili samo jednu.
A ako ima nacin koji je. hvala
dziber je offline   Odgovor sa citatom ove poruke
Stara 23.10.2006, 20:52   #6
Marko_L
Mythbuster
 
Član od: 2.11.2005.
Lokacija: Beograd
Poruke: 2.205
Zahvalnice: 38
Zahvaljeno 370 puta na 147 poruka
Slanje poruke preko ICQ-a korisniku Marko_L Slanje poruke preko MSN-a korisniku Marko_L Slanje poruke preko Yahooa korisniku Marko_L Slanje poruke preko Skypea korisniku Marko_L
Određen forumom Re: Mysql i delete max values...

Probaj
Kod:
DELETE * FROM naziv_tabele
WHERE posmatrana_kolona < (SELECT MAX(posmatrana_kolona) FROM naziv_tabele)
LIMIT 1
Marko_L je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
[PHP ] Problem sa konektovanjem na MySQL bazu. nighthawk Serverske aplikacije i baze podataka 4 29.12.2006 15:15
MySql problem sa logovanjem na server Tagwer Programiranje 1 26.2.2006 14:16
MYSQL pitanje grobar Programiranje 3 22.1.2006 21:48


Sva vremena su po Griniču +2 h. Sada je 18:02.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com