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

时间:2010-04-05 20:38:44

标签: sql mysql

我不确定如何描述我的问题(因此可怕的标题),但它与this recent question有关。

如果我有一些方法可以创建一个包含4行的“表格”作为SELECT的一部分(与NOT IN或MINUS一起使用),问题就很容易解决了。

我的意思是,我可以这样做:

SELECT 1, 2, 3, 4;

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

| 1 | 2 | 3 | 4 |

但有没有办法接收以下内容(不使用UNION,我真的不想要一个长列表可能有数千行的查询)?

| 1 |
| 2 |
| 3 |
| 4 |

2 个答案:

答案 0 :(得分:1)

这种查询可以在支持递归查询的数据库中使用(postgres,oracle,db2,mssql等等)。

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

如果你想要更好,可以将创建临时表放在mysql stored procedure中。

答案 1 :(得分:0)

我发现将分隔常量输入拆分为表格的最佳方法是使用数字/计数表 - 有关详细信息,请参阅http://www.sqlteam.com/article/parsing-csv-values-into-multiple-rows。我以前在大型数据集上使用过这种技术,发现它非常快。

相关问题