从一行MySQL中查询多行

时间:2013-02-27 06:52:18

标签: mysql

我有一个MySQL表如下。我想创建一个查询,根据我的示例中的“种子”计数为每个条目返回多行。这可能在MySQL上吗?

表:

-------------------------------
| 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

2 个答案:

答案 0 :(得分:1)

您可以引入另一个连续种子值表。然后,您的查询可以使用> =。

加入其中

答案 1 :(得分:0)

当您需要多行时,您需要整数值,您可以通过该值来多行。所以我的例子将是Subquery which holds integer values

查询:

<强> SQLFIDDLEExample

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 

结果:

| 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 |