0

如何在 MySQL 中获取用逗号分隔的一列项目?

如果我这样做select * from (select 1, 2, 3, 4, 5) a;,它会给我 5 个不同的列,而不是一个名为(1, 2, 3, 4, 5). 谁能帮我吗?

4

2 回答 2

5

这是一种标准的 SQL 方法。它不使用任何专有功能。

select 1 as n
union all
select 2
union all
select 3
union all
select 4
union all
select 5;
于 2013-07-22T17:54:07.200 回答
0

Mike 的解决方案对于静态范围来说是更好的解决方案,但这里有一个 MySQL 特定的解决方案,以防您需要更容易调整行数;

SELECT @row := @row + 1 as row 
FROM 
  (SELECT 0 UNION ALL SELECT 1) t2,
  (SELECT 0 UNION ALL SELECT 1) t4,
  (SELECT 0 UNION ALL SELECT 1) t8,
  (SELECT 0 UNION ALL SELECT 1) t16,
  (SELECT @row:=0) a
WHERE @row < 5

这将通过调整 WHERE 子句生成多达 16 行,并且很容易扩展,因为一个额外的选择将使范围加倍。

一个用于测试的 SQLfiddle

于 2013-07-22T18:06:18.387 回答