代码之家  ›  专栏  ›  技术社区  ›  Chad Birch

创建多行“表”作为选择的一部分

  •  1
  • Chad Birch  · 技术社区  · 16 年前

    我真的不知道如何描述我的问题(因此标题很糟糕),但它与 this recent question .

    如果我有办法创建一个包含4行的“表”作为SELECT的一部分(与notin或MINUS一起使用),这个问题就会很容易解决。

    我的意思是,我能做到:

    SELECT 1, 2, 3, 4;
    

    并将从数据库中接收一行:

    | 1 | 2 | 3 | 4 |
    

    但是,有没有什么方法可以接收以下内容(如果不使用UNION,我真的不希望查询可能有数千行长的长列表)?

    | 1 |
    | 2 |
    | 3 |
    | 4 |
    
    2 回复  |  直到 9 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    这种查询在支持递归查询的数据库中是可能的(postgres、oracle、db2、mssql等等)。

    在mysql中(概念上)最简单的方法是创建临时表,然后按照建议插入感兴趣的id here

    如果您希望更好,可以将create temp表放在mysql中 stored procedure .

        2
  •  0
  •   eftpotrm    16 年前

    http://www.sqlteam.com/article/parsing-csv-values-into-multiple-rows 更多信息。我以前在大型数据集上使用过这种技术,发现它非常快。