Gal cia kazkas panasaus? https://stackoverflow.com/questions/8022158/how-do-i-order-by-parent-then-child Grzegorz Brzęczyszczykiewicz <Grzegorz@Brzeczyszczykiewicz.tudai> wrote: > > Yra tokia nedidelė savadarbė DVS. > Joje kiekvienas dokumentas turi ID ir 'follows_id', kuris rodo po kurio > dokumento turi eiti šis dokumentas. Dokumentų daug, bet dokumentų > rinkinio pirmo dokumento 'follows_id'==0. > > Mano bėda ta, kad ID nedidėja monotoniškai ir įvedus naują dokumentą jis > gali atsidurti labai pradžioje. Kol kas nenorių įvesti 'sortorder' kaip > atskiro lauko, manau kad 'linked list' turi šiokių tokių privalumų. > > Kaip protingai išrikiuoti dokumentus pagal jų loginę seką? > PHP arba MySQL. > > https://stackoverflow.com/questions/29655419/mysql-order-by-fields-parents > nepadeda, nes ID nedidėja monotoniškai, t.y. pagal šią nuorodą > 'sortorder' gaunu: > > SELECT id, project_id, follows_id, CONCAT(CAST(follows_id AS CHAR),'-', > CAST(id AS CHAR)) AS sortorder FROM `documents` where project_id=25 > ORDER BY sortorder > > id project_id follows_id sortorder > 280 25 0 0-280 > 267 25 276 276-267 > 268 25 267 267-268 > 281 25 280 280-281 > 282 25 281 281-282 > 283 25 282 282-283 > 285 25 284 284-285 > 276 25 285 285-276 > > > O man reikia: > id project_id follows_id sortorder > 280 25 0 0-280 > 281 25 280 280-281 > 282 25 281 281-282 > 283 25 282 282-283 > 284 25 283 283-284 > 285 25 284 284-285 > 276 25 285 285-276 > 267 25 276 276-267 > 268 25 267 267-268 >