查询中的多行来自一行MySQL
我有一个MySQL表,如下所示。我想创建一个查询,根据“seed”的计数为每个条目返回多行,如我的示例所示。这在MySQL上可能吗 表:查询中的多行来自一行MySQL,mysql,Mysql,我有一个MySQL表,如下所示。我想创建一个查询,根据“seed”的计数为每个条目返回多行,如我的示例所示。这在MySQL上可能吗 表: ------------------------------- | ID | Name | Seed | | 1 | Entry 1 | 2 | | 2 | Entry 2 | 3 | | 3 | Entry 3 | 1 | | 4 | Entry 4 |
-------------------------------
| ID | Name | Seed |
| 1 | Entry 1 | 2 |
| 2 | Entry 2 | 3 |
| 3 | Entry 3 | 1 |
| 4 | Entry 4 | 2 |
-------------------------------
结果:
ID Name Seed
1 Entry 1 2
1 Entry 1 2
2 Entry 2 3
2 Entry 2 3
2 Entry 2 3
3 Entry 3 1
2 Entry 2 2
2 Entry 2
您可以引入另一个顺序种子值表。然后您的查询可以使用>=。连接到它。当您需要多行时,您需要整数值,通过这些整数值可以多行。因此,我的例子将与 查询:
SELECT t.ID, t.Name, t.Seed
FROM Table1 t
LEFT JOIN (SELECT
(TWO_1.SeqValue +
TWO_2.SeqValue +
TWO_4.SeqValue +
TWO_8.SeqValue +
TWO_16.SeqValue) SeqValue
FROM
(SELECT 0 SeqValue UNION ALL SELECT 1 SeqValue) TWO_1
CROSS JOIN (SELECT 0 SeqValue UNION ALL SELECT 2 SeqValue) TWO_2
CROSS JOIN (SELECT 0 SeqValue UNION ALL SELECT 4 SeqValue) TWO_4
CROSS JOIN (SELECT 0 SeqValue UNION ALL SELECT 8 SeqValue) TWO_8
CROSS JOIN (SELECT 0 SeqValue UNION ALL SELECT 16 SeqValue) TWO_16
)t2
ON t2.SeqValue < t.SEED
你试过什么吗?可以使用游标、创建过程等。我一直在用谷歌搜索,我能找到的只是将多行合并成一行,以及一个使用php的解决方案,但我需要在MySQL中这样做。我真的不知道从哪里开始。对于搜索查询或教程,您有什么建议吗?
| ID | NAME | SEED |
-----------------------
| 1 | Entry 1 | 2 |
| 1 | Entry 1 | 2 |
| 2 | Entry 2 | 3 |
| 2 | Entry 2 | 3 |
| 2 | Entry 2 | 3 |
| 3 | Entry 3 | 1 |
| 4 | Entry 4 | 2 |
| 4 | Entry 4 | 2 |