Topic: nusutato maziausia reiksme
Sveiki,
noriu updatinti stulpeli ku maziausia yra reiksme..
tarkim yra keli stulpeliai, viename reiksme - 1, kitame - 2, tai noreciau suzinoti kaip updatinti ta stulpeli kur 1..
Dekui
PHP ir MySQL programavimas, SQL užklausos, duomenų bazės, PHP scriptai, pagalba, diskusijos, pamokos ir straipsniai.
You are not logged in. Please login or register.
PHP ir MySQL → SQL užklausos ir duomenų struktūros → nusutato maziausia reiksme
Sveiki,
noriu updatinti stulpeli ku maziausia yra reiksme..
tarkim yra keli stulpeliai, viename reiksme - 1, kitame - 2, tai noreciau suzinoti kaip updatinti ta stulpeli kur 1..
Dekui
Bet jeigu bandau:
mysql_query("UPDATE lentele SET stulpelis = '$update' WHERE laikas = MIN(laikas)");
tai nevygdo uzklausos..
tai gal pažiūrėk į pateiktą pavizdį, galų gale googlink.
Teisingas sprendimas šiuo atveju yra iš dviejų žingsnių: a) susirandi minimalią reikšmę turinčią eilutę; b) ją UPDEITINI;
Prie visa to geriausia, kad UPDEITINIMUI paimtum ne pačia reiškmę, o kokį nors ID (unikalų) ir pagal ji jau darytum UPDATE (čia, kad apsisaugotum nuo to jeigu pas tave reikšmių stulpelyle reikšmės yra ne unikalios).
Kai pirma paselectinu, o tada tik updatinu tada viskas iseina, bet kodel negalima iskarto update where kazkas = min()?
Tokie paprasti klausimai dažniausiai būna dokumentacijoje parašyti ;)
UPDATE sakinyje negalima naudoti SELECT'o (ar atitinkamų funkcijų), kurie/kurios kreipiasi į tą pačią lentelę.
šitą dalyką reikia prisiminti.
be to mysql'e negalima naudoti agregatiniu funkciju (min, max, avg...) from lauke
PHP ir MySQL → SQL užklausos ir duomenų struktūros → nusutato maziausia reiksme
Powered by PunBB, supported by Informer Technologies, Inc.