Autor Zpráva
v4it
Profil *
Dobrý den, mám výpis uživatelů, kde spojuju informace o jedněch uživatelích ze 2 zdrojů: z ldapu(pokud má daný uživatel založen emailový účet, jinak se vrací null) a z mysql(pokud mají ftp účet, jinak se vrací null). Tyto informace spojím v jednom poli a povoluji řazení podle jména uživatele, emailové adresy, ftp kvóty apod. Je možnost řadit podle více klíčů najednou. Také omezuju výpis uživatelů třeba 15 najednou. Toto hezky funguje, ale poslední dobou, co narůstá počet uživatelů, se to stává hrozně pomalým. Není čemu se divit - musí se přečíst všichni uživatelé z obou zdrojů, v poli seřadit a pak na nich nasadit limit zobrazení. Potřeboval bych poradit s vhodnějším algoritmem na zpracování dat. Logicky se naskýtá možnost získat třeba 3 uživatele už rovnou seřazené z mysql, ale to nejde z následujícího důvodu:

username | sql/email | ldap/kvota
-----------------------------------------
usr1 | e@email.com | 500
usr2 | d@email.com | 500
usr3 | c@email.com | 500
usr4 | b@email.com | 500
usr5 | a@email.com | 500

Teď se rozhodnu seřadit je podle kvóty a pak podle emalu, tzn. ldap vrátí první 3, ty pak se ty tři seřadí jako c@..., d@..., e@... Správně by ale měl výpis vypadat takto:
usr5 | a@email.com | 500
usr4 | b@email.com | 500
usr3 | c@email.com | 500


Doufám v nějakou dobrou duši, která mi s tím pomůže :-)
Keeehi
Profil
v4it:
Moc vám nerozumím, ale mysql umí řadit podle více sloupců ORDER BY sloupec1, sloupec2, sloupec3, .. - Řadí se podle sloupce 1, pokud budou ve sloupci 1 více stejných položek, seřadí se podle sloupce2, atd..

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: