4

日付をループしてインクリメントする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 日まで毎日行を挿入する必要があります。

4

2 に答える 2

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

0 から 9 までの 10 行の i という 1 つの列を持つ integers というテーブルに依存します。

Between 節があるので、日付に追加する数値の範囲を制限できます

于 2013-03-04T15:47:20.340 に答える
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 でもこれを行うことができます ;)

私はあなたにこの方法を与えます。

サルドス ;)

于 2013-03-04T16:01:42.197 に答える