假設原始資料tier,pids 都為null。
id=25,tier=1,parent_id=0,pids=null,
如何實作更新 tier,和pids ,實作下面的展示效果。
pids =parent_id +parent_id的pids;
tier 為當前資料結構序號
----------------------------------------------------------
tier pids parent_id id
2 25 25 26
3 26,25 26 27
3 26,25 26 28
3 26,25 26 34
3 26,25 26 36
3 26,25 26 47
3 26,25 26 89
3 26,25 26 95
3 26,25 26 99
3 26,25 26 102
3 26,25 26 105
3 26,25 26 109
3 26,25 26 112
3 26,25 26 127
3 26,25 26 151
4 27,26,25 27 29
4 27,26,25 27 30
4 27,26,25 27 31
4 27,26,25 27 32
4 27,26,25 27 33
4 27,26,25 27 35
4 27,26,25 27 37
4 27,26,25 27 38
4 28,26,25 28 39
4 34,26,25 34 40
4 34,26,25 34 43
4 27,26,25 27 44
4 36,26,25 36 45
4 36,26,25 36 46
4 27,26,25 27 49
4 27,26,25 27 50
4 36,26,25 36 55
4 34,26,25 34 58
4 34,26,25 34 59
4 27,26,25 27 61
4 27,26,25 27 69
4 36,26,25 36 70
4 34,26,25 34 81
4 34,26,25 34 86
4 27,26,25 27 90
4 34,26,25 34 92
4 27,26,25 27 100
4 34,26,25 34 108
4 34,26,25 34 113
4 34,26,25 34 115
4 34,26,25 34 117
4 34,26,25 34 124
4 34,26,25 34 125
4 27,26,25 27 126
4 27,26,25 27 133
4 34,26,25 34 148
4 34,26,25 34 149
4 27,26,25 27 154
4 27,26,25 27 155
4 27,26,25 27 169
uj5u.com熱心網友回復:
UPDATE
`level` l1
LEFT JOIN `level` l2 ON l1.parent_id = l2.id
set l1.pids=if(ISNULL(l2.id),'',if(l2.pids='',l1.parent_id,CONCAT(l1.parent_id,',',l2.pids))),l1.tier=if(ISNULL(l2.id),1,l2.tier+1)
WHERE 1;
有多少層級就執行多少次。
一條陳述句直接實作,效率就極其低下了
uj5u.com熱心網友回復:
樓上可行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/41962.html
標籤:MySQL
上一篇:怎么利用Python的APscheduler做一個定時獲取盤后股票資料的定時任務?
下一篇:hadoop高可用集群
