2013-03-04 259 views
4

如何添加行只与SQL的表中循环,并增加一个日期例如: -如何循环插入MySQL的增量日期?

INSERT INTO my_table (the_date) VALUES ('2013-04-13'); 
INSERT INTO my_table (the_date) VALUES ('2013-04-14'); 
INSERT INTO my_table (the_date) VALUES ('2013-04-15'); 
INSERT INTO my_table (the_date) VALUES ('2013-04-16'); 
... 

我需要从2013年5月7日插入每天一排在下一个如1000天。

+0

你的循环....你必须首先考虑循环的次数,然后寻找该表最后插入的ID,并采取日期....然后在循环中,你应该总和1日到该日期,并作出插入;)....极好的MySQL扩展你使用?? – Hackerman 2013-03-04 15:41:20

+0

你想插入多少行?表格中还有其他栏目吗? – 2013-03-04 15:41:41

+0

@RobertRozas检查编辑:) – LouwHopley 2013-03-04 15:49:03

回答

4

像这样的事情会做到这一点: -

INSERT INTO my_table (the_date) 
SELECT ADDDATE('2013-04-13', INTERVAL SomeNumber DAY) 
FROM (SELECT a.i+b.i*10+c.i*100+d.i*1000 AS SomeNumber FROM integers a, integers b, integers c, integers d) Sub1 
WHERE SomeNumber BETWEEN 0 AND 1000 

依赖于一个表叫我10行一列称为整数,值从0到9

之间条文只是有那么您可以限制数量的添加到日期

+0

嗨,检查编辑。另外,还需要另一张桌子吗? – LouwHopley 2013-03-04 15:51:31

+0

这是真的,但它是一个非常有用和简单的表格(允许您生成大小不等的数字),另外意味着您可以使用单个SQL语句执行所需操作,而不是循环并执行许多插入操作。我已经做了一个小修改,所以它可以应付1000天(现在只需要改变BETWEEN子句就可以应付0到9999天) – Kickstart 2013-03-04 15:56:28

+0

甜!谢谢:) – LouwHopley 2013-03-04 16:51:02

0

试试这个代码范围:

$starDate = new DateTime('2013-05-07'); 

for ($i=0; $i < 1000; $i++) { 
    $consulta ="INSERT INTO my_table (the_date) VALUES ('".date_format($starDate, 'Y-m-d')."');"; 
    $starDate = date_add($starDate, date_interval_create_from_date_string('1 days')); 
    echo $consulta."</br>"; 
    //try somthing like mysqli_query($consulta); 
} 

用php和mysqli ....你可以用纯sql做到这一点;)

我给你这种方式做。

Saludos;)