[SQL ] 樹狀結構的SQL怎麼下?
在程式中
很常用到像是「樹」這種東西
例如資料夾(d:我的資料夾/相片/日本旅遊)
部門單位(頂尖大學/理學院/資訊工程研究所)
地址(地球/台灣/台北/中和路一百號)
我看到的用法
大多是用一個欄位叫做ParentId,紀錄上一層是什麼
像是 #1BOeU8K1 那篇文中那樣
那,我想請問
如果要針對一棵「樹」下指令該怎麼做?
例如把樹中所有的Name欄位改成'樹A'
UPDATE Tablea SET Name='樹A' WHERE.....
之類的
之前看過有人額外加Folder欄位去紀錄階層
EX: _0_2_3_42_5_ 中間的數字是從根部到該資料夾的id
如果想找id為42的資料夾下的所有檔案,就用 Folder LIKE '%_42_%' 下去找
也看過有人寫遞迴去撈資料
但是,目前我想弄的東西,可能會製造一棵層次達到幾十、幾百,甚至幾千的樹
而且結點可能會移動
不管用遞迴或是額外加欄位似乎都不太理想
請問有漂亮的方法可以解決這個問題嗎?
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.59.16.65
推
05/04 12:43, , 1F
05/04 12:43, 1F
→
05/04 12:51, , 2F
05/04 12:51, 2F
→
05/04 12:52, , 3F
05/04 12:52, 3F
→
05/04 12:54, , 4F
05/04 12:54, 4F
→
05/04 12:55, , 5F
05/04 12:55, 5F
→
05/04 12:56, , 6F
05/04 12:56, 6F