ntile-szerűség mysql alatt
Sziasztok!
Adott egy tábla, aminek a tartalmat egy oszlop alapján 10, méretileg kb. egyező részre kéne bontani.
Egészen pontosan a táblában cikk címek vannak, és automata menügeneráláshoz kéne, hogy magától felossza mondjuk 1-A, B-D, E-G... stb. részekre, úgy hogy minden kattintásra kb. hasonló mennyiségű adat jelenjen meg.
Tehát fel kéne darabolni 10 részre az egész táblát és a határolókat kéne megkapni.
Ha az egész táblát lekérdezem, akkor abból php-val már ki lehetne szedni, de azért egy nagyobb táblát mindig teljesen beolvasni nem túl elegáns/hatékony.
Az is jó lenne, ha meg tudnám mondani, hogy kérem egy táblából egy bizonyos rendezés szerinti sum/10, 2*sum/10, 3*sum/10-edik elemet, lehetőleg minnél kevesebb lekérdezéssel. (sum az összes sort jelöli, és 10 részre bontanám itt most.)
(oracle alatt az NTILE() függvény csinál ehhez hasonlót.
Köszi előre is!
■ Adott egy tábla, aminek a tartalmat egy oszlop alapján 10, méretileg kb. egyező részre kéne bontani.
Egészen pontosan a táblában cikk címek vannak, és automata menügeneráláshoz kéne, hogy magától felossza mondjuk 1-A, B-D, E-G... stb. részekre, úgy hogy minden kattintásra kb. hasonló mennyiségű adat jelenjen meg.
Tehát fel kéne darabolni 10 részre az egész táblát és a határolókat kéne megkapni.
Ha az egész táblát lekérdezem, akkor abból php-val már ki lehetne szedni, de azért egy nagyobb táblát mindig teljesen beolvasni nem túl elegáns/hatékony.
Az is jó lenne, ha meg tudnám mondani, hogy kérem egy táblából egy bizonyos rendezés szerinti sum/10, 2*sum/10, 3*sum/10-edik elemet, lehetőleg minnél kevesebb lekérdezéssel. (sum az összes sort jelöli, és 10 részre bontanám itt most.)
(oracle alatt az NTILE() függvény csinál ehhez hasonlót.
Köszi előre is!
limit?
ha tudod hány sor van a táblában (select count(*) as sum from tabla), akkor a
lekérdezések végére rendre írd be, hogy
limit 0, 1
limit (sum/10), 1
limit 2*(sum/10), 1
stb.
doksiban szebben le van írva, de gyakorlatilag megadhatod, hogy hanyadik elemtől hányat kérsz.
gex
ismerem...
Valami kis csel, okosság nem jut senki eszébe? :)