Tema: Re: Rikiavimas
Autorius: krk
Data: 2021-03-07 18:11:58
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
>