如何向表中添加行,只有SQL循环并增加日期,例如:
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-05-07之间为每一天插入一行,例如1000天。
答案 0 :(得分: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
依赖于一个名为整数的表,其中一列名为i,有10行,值为0到9。
Between子句就在那里,因此您可以限制要添加到日期的数字范围
答案 1 :(得分:1)
试试这段代码:
$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;)