mysql - 自动生成具有不同日期的行

标签 mysql

有没有办法自动生成具有不同日期的行,但保持其余数据相同?

例如,我尝试每 7 周生成一次以下内容?有没有一种敏锐的方法可以做到这一点,或者我应该手动重复以下操作?

INSERT INTO courses ( CourseCode ,OrganiserID ,TopicID ,StartDate ,EndDate ,Week ,LocationID ,CourseFee )


SELECT 'TEMP',9,51,'2018-01-22','2018-01-26',4 -- Week ,2,CourseFee FROM topic WHERE TopicID=51;

最佳答案

这是适合您的解决方案:

  1. 创建一个带有id的表

  2. 插入 1 到 52,持续 52 周

  3. 从表格中选择一周的开始日期和结束日期。

  4. 插入其他数据以及本周的开始日期和结束日期

<小时/>
Create table test1(id int not null PRIMARY KEY);

INSERT into test1 select 1;

insert ignore into test1 select id+(select max(id) from test1) from test1;

 insert ignore into test1 select id+(select max(id) from test1) from test1;

 insert ignore into test1 select id+(select max(id) from test1) from test1;

 insert ignore into test1 select id+(select max(id) from test1) from test1;

 insert ignore into test1 select id+(select max(id) from test1) from test1;

 insert ignore into test1 select id+(select max(id) from test1) from test1;

 delete from test1 where id >52;

 -- Select 52 week begin and end date
 select DATE_ADD('2017-01-02',INTERVAL (id-1)*7 DAY) Week_begin_date, DATE_ADD('2017-01-02',INTERVAL (id-1)*7+4 DAY) Week_end_date from test1;

 --Insert Data for 52 weeks
 INSERT INTO courses ( CourseCode ,OrganiserID ,TopicID ,StartDate ,EndDate ,Week ,LocationID ,CourseFee )
 SELECT 'TEMP',9,51,DATE_ADD('2017-01-02',INTERVAL (id-1)*7 DAY), DATE_ADD('2017-01-02',INTERVAL (id-1)*7+4 DAY) ,id, <LocationID_value>, <CourseFee_value> from test1;

关于mysql - 自动生成具有不同日期的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47802156/

相关文章:

PHP、MYSQL Web 服务与 nusoap

Mysql内连接和过滤结果

php 与 mysql 连接,保护脚本

mysql - 在sequelize.js中设置列顺序

mysql - 使用 SQL 从多个表中获取公共(public)值

php - 只有很少的值没有被插入到数据库中

php - 相关视频取决于标题和描述

java - MySQL安装帮助

MySQL 无法识别 WHERE 中的日期时间索引

php - 是否可能有 1 个查询语句