2013-03-04 24 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;)