Novo

Forum kao aplikacija na telefonu

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

  • 8 odgovora
  • 4.154 pregleda

Najnovija ↓

Sta ne valja u ovoj naredbi... 23.10.2006. u 21:35 · pre 243 meseca #1
ne znam sta je u pitanju ali ova naredba mi ne funkcionise:

delete from tabela where kolona < (select max(kolona) from tabela) limit 1;
probao sam i
delete from tabela where kolona = (select max(kolona) from tabela) limit 1;

izbaci mi sledecu poruku u oba slucaja:
ERROR 1093 at line 1: you can't specify target 'tabela' for update in FROM clause

u sustini trebao bi da obrisem sve ispod maksimalne vrednosti neke kolone
da li ima jos neki nacin da se komanda postavi.

mysql verzija je 4.1
Re: Sta ne valja u ovoj naredbi... 23.10.2006. u 22:17 · pre 243 meseca #2
Radi sa dva upita. Ne možeš koristiti SELECT u UPDATE/INSERT upitima nad istom tabelom.
Potpis
"I'd take the awe of understanding over the awe of ignorance any day."
- Douglas Adams
Re: Sta ne valja u ovoj naredbi... 24.10.2006. u 02:15 · pre 243 meseca #4
SELECT @maksimum:=MAX(kolona) FROM tabela;
DELETE FROM TABELA WHERE kolona < @maksimum;
Potpis
"I'd take the awe of understanding over the awe of ignorance any day."
- Douglas Adams
Re: Sta ne valja u ovoj naredbi... 24.10.2006. u 02:46 · pre 243 meseca #5
Svaka ti cast Not now,John!

Ne da radi, nego rastura :) extra...

Samo me zanima da li je moguce navesti kao 3 ili 4 vrednosti ispod maximuma
nesto kao

DELETE from tabela WHERE kolona < @maximum - 3;

da li je izvodivo.

Ali iako nije nema veze mnogo si mi vec pomogao.


Hvala ti puno.

Re: Sta ne valja u ovoj naredbi... 24.10.2006. u 11:47 · pre 243 meseca #7
Komanda super radi.
Ali jel postoji nacin da se ona ubaci nekako u notepad pa da se izvrsava na taj nacin
kao batch file.

Ubacio sam na seledeci nacin ali nema efekta:
mysql -h localhost -u root -ppassword -e "select @maksimum:=max(broj) from mojatabela" bazapodataka

a u drugi batch:
mysql -h localhost -u root -ppassword -e "delete from mojatabela where broj < @maksimum" baza podataka


i u treci batch file
call (ime prvog batcha)
call (ime drugog batcha)

Direktno iz promta radi extra ali ovako nisam uspeo.
Re: Sta ne valja u ovoj naredbi... 24.10.2006. u 12:10 · pre 243 meseca #8
Tako ne radi, jer su te promjenjive vezane za konekciju i korisnika, tj. nakon izvršenja prve komande promjenjive se ponište.
Stavi sve SQL naredbe u jedan txt fajl pod nazivom npr. "komande.sql":
Code:
select @maksimum:=max(broj) from mojatabela;
delete from mojatabela where broj < @maksimum;

Poslije toga, sve SQL komande izvršavaš pomoću:
Code:
mysql -u root -ppassword bazapodataka < komande.sql

Pošto radiš pod Windowsom, nisam siguran da će gornja komanda da radi što se tiče redirekcije "<".
Nadam se da hoće.
Potpis
"I'd take the awe of understanding over the awe of ignorance any day."
- Douglas Adams
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme