获取由多个值组成的单个列

时间:2013-07-22 17:51:42

标签: mysql

如何在MySQL中使用逗号分隔一列项目?

如果我select * from (select 1, 2, 3, 4, 5) a;,它会为我提供5个不同的列,而不是名为(1, 2, 3, 4, 5)的单个列。任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:5)

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

select 1 as n
union all
select 2
union all
select 3
union all
select 4
union all
select 5;

答案 1 :(得分: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行,并且很容易扩展,因为一个额外的选择会使范围加倍。

An SQLfiddle to test with