Dooling Posted June 20, 2007 Report Share Posted June 20, 2007 Ir šāds vaicājums SELECT * FROM `temp_videjie` order by procenti asc limit 3 Tas atgriež vērtības: 51.36 52.78 54 Man vajag, lai atgriež šādas vērtības: 54 52.78 51.36 Pagaidām doma ir izveidot View'u un tad sakārtot datus kā nepieciešams. Bet jautājums vai var modificējot to vaicājumu, kurš ir augstāk, panākt man vēlamo rezultātu? Link to comment Share on other sites More sharing options...
Val Posted June 20, 2007 Report Share Posted June 20, 2007 ar asc vietā desc? Link to comment Share on other sites More sharing options...
Dooling Posted June 20, 2007 Author Report Share Posted June 20, 2007 Tad atlasa TOP 3 Link to comment Share on other sites More sharing options...
Val Posted June 20, 2007 Report Share Posted June 20, 2007 ko tad īsti vajag? trīs mazākās vērtības no visas tabulas? Link to comment Share on other sites More sharing options...
Dooling Posted June 20, 2007 Author Report Share Posted June 20, 2007 jā, trīs mazākās ... sagrupētas no labākās uz sliktāko Link to comment Share on other sites More sharing options...
v3rb0 Posted June 20, 2007 Report Share Posted June 20, 2007 atlasi 3 mazākās kā jau dari, un apgried to listi otrādi php pusē (tur takš tikai 3 ieraksti). ar sql ka tik nevajadzēs selectu no selecta. Link to comment Share on other sites More sharing options...
Val Posted June 20, 2007 Report Share Posted June 20, 2007 (edited) select maz.procenti from (select procenti from temp_videjie order by procenti asc limit 3) as maz order by procenti desc Edited June 20, 2007 by Val Link to comment Share on other sites More sharing options...
Dooling Posted June 21, 2007 Author Report Share Posted June 21, 2007 (edited) Val variants stradā. Bet es vakar izveidoju savādāku risinājumu. $sql_limitam="SELECT procenti FROM temp_videjie"; $vaicajums_limitam=mysql_query($sql_limitam); $limit = mysql_num_rows($vaicajums_limitam); $limit = $limit - 3; if($limit<0) { $limit = 0; } $antitop3 = "SELECT procenti FROM temp_videjie order by procenti desc limit $limit, 3"; Edited June 21, 2007 by Dooling Link to comment Share on other sites More sharing options...
larvae Posted June 21, 2007 Report Share Posted June 21, 2007 SELECT * FROM (SELECT * FROM temp_videjie ORDER BY procenti ASC LIMIT 3) ORDER BY procenti DESC Moš tur aliasu kādu vajadzēs, bet ideju saprast var... Link to comment Share on other sites More sharing options...
Val Posted June 21, 2007 Report Share Posted June 21, 2007 Tiešām moš vajag. Tas pats jau vien ir domāts... Link to comment Share on other sites More sharing options...
GedroX Posted June 21, 2007 Report Share Posted June 21, 2007 (edited) Nafig 3 ierakstu dēļ tā čakarēties. Uzliec array_reverse un miers. :/ Val variants stradā. Bet es vakar izveidoju savādāku risinājumu. $sql_limitam="SELECT procenti FROM temp_videjie"; $vaicajums_limitam=mysql_query($sql_limitam); $limit = mysql_num_rows($vaicajums_limitam); $limit = $limit - 3; if($limit<0) { $limit = 0; } $antitop3 = "SELECT procenti FROM temp_videjie order by procenti desc limit $limit, 3"; Galīgi nepareizi. Pirmkārt 1 vaicājums vienmēr ir labāk par 2. Otrkārt starp šiem vaicājumiem tabulā var tikt ierakstīti jauni ieraksti vai izdzēsti vecie un saņemtie dati vairs nebūs pareizi. Edited June 21, 2007 by GedroX Link to comment Share on other sites More sharing options...
Roze Posted June 21, 2007 Report Share Posted June 21, 2007 Galīgi nepareizi. Pirmkārt 1 vaicājums vienmēr ir labāk par 2. Ne par konkrēto gadijumu, taču šis apgalvojums ir nekorekts.. Vienmēr tā nav gan - proti divi simple vaicājumi var būt krietni labāk (no performances u.c. viedokļa) nekā salikts (kešojas, labāk izmantojas indeksi utt). Link to comment Share on other sites More sharing options...
GedroX Posted June 22, 2007 Report Share Posted June 22, 2007 (edited) Nu nav arī caur pakaļu vaicājumi jāraksta. Šajā gadījumā 2 nu toč nav vajadzīgi. Īpaši tādā izskatā. Roze, uzrādi, lūdzu, kādu piemēru, kad divi vaicājumi ir labāk par vienu vaicājumu vai kādu vienu sql funkciju. ;) Edited June 22, 2007 by GedroX Link to comment Share on other sites More sharing options...
Recommended Posts