從MySQL 資料庫取得鍊錶
以正確的順序從儲存在MySQL 資料庫中的鍊錶結構中取得資料可能具有挑戰性,因為MySQL 不支援遞歸查詢。
解決方案 1:嵌套連接
雖然 MySQL 不提供原生遞歸查詢支持,但使用嵌套也可以達到類似的效果加入。透過連接同一個表的多個實例,可以依序遍歷鍊錶。以下查詢說明了這種方法,但應該注意的是,由於其嵌套結構,它對於大型鍊錶可能效率低下:
<code class="sql">SELECT * FROM mytable t1 LEFT JOIN mytable t2 ON (t1.next_id = t2.id) LEFT JOIN mytable t3 ON (t2.next_id = t3.id) LEFT JOIN mytable t4 ON (t3.next_id = t4.id) LEFT JOIN mytable t5 ON (t4.next_id = t5.id) LEFT JOIN mytable t6 ON (t5.next_id = t6.id) LEFT JOIN mytable t7 ON (t6.next_id = t7.id) LEFT JOIN mytable t8 ON (t7.next_id = t8.id) LEFT JOIN mytable t9 ON (t8.next_id = t9.id) LEFT JOIN mytable t10 ON (t9.next_id = t10.id);</code>
解決方案2:外部解析
另一個解決方案是使用標準SELECT 查詢以無序方式檢索數據,然後在客戶端解析鍊錶結構。這種方法對於複雜的樹狀資料結構更有效。
外部軟體解決方案
某些品牌的資料庫,例如 Oracle 和 Microsoft SQL Server,提供額外的 SQL遞歸查詢的語法。然而,MySQL 不支援此功能。
以上是如何以正確的順序從 MySQL 資料庫中取得鍊錶資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!