根据数字将单行拆分为多个

时间:2018-01-24 08:35:42

标签: php sql select row

使用以下select语句:

  select
      spec_sheet_color_comb.id,
      spec_sheet_color_comb.pairs*2 as total
  from
      spec_sheet_color_comb
  where 
        spec_sheet_color_comb.id_spec_sheet IN (4814)

得到这个结果:

 id    total

79928   5

现在,我想根据TOTAL数量拆分此结果并获得此结果,显示ID的5行:

结果

79928
79928
79928
79928
79928

这非常重要,谢谢

1 个答案:

答案 0 :(得分:1)

假设您有一个包含2列id和total的表。 (您可以使用查询而不是表格。)

您需要一个包含所有数字1..max_number_you_need的附属表(或视图) e.g。

(select 1 as number
 union
 select 2 as number
 ...
 select 999 as number)

然后你可以使用加入你需要的表格的数字源表来增加行数

select id
from the_table t
     join (table with numbers) n on n.number<=t.total

更新:示例

SELECT id
from (select 1 as id, 5 as total
      union
      select 2 as id, 3 as total) t
      join (select 1 as number
            union
            select 2 number
            union
            select 3 number
            union
            select 4 number
            union
            select 5 number) num on num.number<=t.total
order by id