MySQL 行產生器:有限的替代方案
與其他資料庫系統不同,MySQL 缺少 Oracle 語法中那樣,能夠為 JOIN 操作產生任意數量行的能力。
這種限制在尋求與 Oracle 的 CONNECT BY 子句或 PostgreSQL 的 generate_series() 函數相當的多功能行產生器時,會帶來挑戰。但是,有一些替代方法可以在 MySQL 中模擬行生成:
<code class="language-sql">WITH RECURSIVE Hier(Row) AS ( SELECT 1 UNION ALL SELECT Row + 1 FROM Hier WHERE Row < 10 ) SELECT * FROM Hier;</code>
<code class="language-sql">DECLARE Row INT DEFAULT 0; WHILE Row < 10 DO -- 在这里插入你的逻辑,例如插入到临时表中 SET Row = Row + 1; END WHILE;</code>
這些方法透過迭代產生指定數量的行並將它們儲存在臨時表中來模擬行生成。但是,它們需要額外的臨時表和查詢結構,使得它們不如專用的行生成器高效。
因此,了解 MySQL 在行生成方面的限制並探索實現類似功能的替代方法非常重要。
以上是MySQL 缺乏像 Oracle 的 CONNECT BY 或 PostgreSQL 的generate_series() 那樣強大的行產生器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!