Grzegorz Brzęczyszczykiewicz, permalink
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
--
Grzegorz
Chrząszczyrzewoszyce, powiat Łękołody