Mysql需要使用select查询复制记录

时间:2013-11-20 10:23:35

标签: mysql

我有一个如下表所示的帖子,

   | ID |   TITLE   |  NUMBER_OF_REPEAT
   |  1 |   post1   |         2
   |  2 |   post2   |         1
   |  3 |   post3   |         3

从上表中我需要一个select查询来生成行,具体取决于NUMBER_OF_REPEAT字段。

预期产出,

   | ID |   TITLE   
   |  1 |   post1 
   |  1 |   post1   
   |  2 |   post2   
   |  3 |   post3 
   |  3 |   post3 
   |  3 |   post3   

这种重复也应该支持分页。请帮帮我。

提前致谢。

3 个答案:

答案 0 :(得分:0)

我在这里找到了一个可能的答案:SQL: Repeat a result row multiple times, and number the rows。看一下MySQL的SQL小提琴:http://www.sqlfiddle.com/#!2/78f5b/1

所以,这是可能的,但我认为这适用于您的应用程序,而不适用于您的DBMS。

答案 1 :(得分:0)

我认为这不应该由DBMS来做。这可以在程序中做到。 但是你可以创建另一个只有两行的表并与post表连接

让我们说表格有两行。

SELECT ID ,TITLEfrom post, dup

答案 2 :(得分:0)

像这样的东西

SQL Fiddle

create table numbers (number int);

insert into numbers 
select 1
union 
select 2
union 
select 3;

SELECT id, title
FROM tabl
    JOIN Numbers 
        ON tabl.repeater >= Numbers.number
order by id

它很乱,但修改数字表以获得更多重复。

SQL Fiddle