Aleksandrs Posted July 2, 2006 Report Share Posted July 2, 2006 Kā vienā mysql(4.1) vaicājumā izvilkt 5 ierakstus no katras grupas? Tabulas struktūra: id|grupa|ieraksts Link to comment Share on other sites More sharing options...
Delfins Posted July 2, 2006 Report Share Posted July 2, 2006 mans domāt, ka nevar.... vismaz ar standarta SQL... Pagaidām nāk prātā viens risinājums, pielikt kolonnu order un selektēt, kur ordernum < 5 Link to comment Share on other sites More sharing options...
bubu Posted July 2, 2006 Report Share Posted July 2, 2006 Neatceros īsti ar kuru versiju varēja apakškverijus taisīt, bet nu apmēram šādi: SELECT t1.grupa, t3.xx FROM tabula t1, (SELECT t2.ieraksts AS xx FROM tabula t2 WHERE t2.grupa = t1.grupa ORDER BY id LIMIT 5) t3 ORDER BY grupa Link to comment Share on other sites More sharing options...
Delfins Posted July 2, 2006 Report Share Posted July 2, 2006 uz 4.1 neies krastā... Link to comment Share on other sites More sharing options...
Aleksandrs Posted July 2, 2006 Author Report Share Posted July 2, 2006 Neiet. Parasti tika taisīts katrai grupai savs vaicājums, bet gribās visu vienā. Bija doma tādu vaicājumu: SELECT id,grupa,ierakstsFROM tabula v WHERE id IN (SELECT id FROM tabula WHERE grupa=v.grupa LIMIT 5) Bet 4.1 šādu vaicājumu neatbalsta. Link to comment Share on other sites More sharing options...
v3rb0 Posted July 2, 2006 Report Share Posted July 2, 2006 vienā, vienīgi select * from tabula order by grupa un ar php atlasīt tos 5cus katrā grupā :) bet ja nopietni, kas vainas vairākiem selectiem, vai arī jaunāka mysql lietošanai? Link to comment Share on other sites More sharing options...
Aleksandrs Posted July 2, 2006 Author Report Share Posted July 2, 2006 (edited) Itkā jau nav nekāds sarežģītais vaicājums. Kā teikt parastākām lapām servera konfigurāciju neizvēlies, bet iemesls kā parasti vai 0.01 sekundi neiegūsim taisot tikai vienu vaicājumu. v3rb0, ja daudz ierakstu, vai [select * from tabula order by grupa] vietā nebūtu labak katrai grupai taisīt [select * from tabula where grupa=GRUPAS_NUMURS LIMIT 5] ? Edited July 2, 2006 by Aleksandrs Link to comment Share on other sites More sharing options...
bubu Posted July 2, 2006 Report Share Posted July 2, 2006 Būs labāk. Link to comment Share on other sites More sharing options...
v3rb0 Posted July 2, 2006 Report Share Posted July 2, 2006 (edited) kura nez būtu tā 'parastā' lapa (ar max 100 unikāliem apmeklējumiem 24trās stundās), kurai +/-0.01 secunde ir no svara? var padomāt kko uz kešošanas pusi - vienreiz izselectē ar daudzajiem selectiem, tad sakešo - failā vai db, pēc tam ņem no kešas. Edited July 2, 2006 by v3rb0 Link to comment Share on other sites More sharing options...
Delfins Posted July 2, 2006 Report Share Posted July 2, 2006 Nē nu jāskatās ko grib arī selektēt... es jau piedāvāju ieviest lauku OrderNum.. vai kādu citu, kas pasaka, ka konkrētu Item vajag rādīt iekš pirmajiem katrai grupai... Vismaz Axaptā sales-web modulim tā ir.. imho, tad iegūsti 2 `zaķus` - gan kontroli (vienmēr zini, ka tiks parādīts tas, ko esi ielicis), + gan optimizācija (nevajag nekādu uber-kverijus) Link to comment Share on other sites More sharing options...
Recommended Posts