如何将行从一个MySQL表复制到另一个表,并基于变量更新其中一个值


How do I copy rows from one MySQL table to another and update one of the values based on a variable

如何循环遍历MySQL表的所有行,并将其所有内容复制到另一个表,同时多次复制某些行,并在几天后更新其中一个值(时间)。以后的天数将基于表中的另一个值。表a包含应复制的数据。如果next_event为"0",则只添加一次。如果next_event为604800(应等于一周),则应多次添加该行,并在日期中添加next_event值。在下面的例子中,我已经添加了event1和event3三次。

表a:

name        date             time        event       next_event
name1       2012-06-02       18:00:00    event1      604800
name1       2012-06-02       19:00:00    event2      0
name1       2012-06-02       20:00:00    event3      604800
name1       2012-06-02       21:00:00    event4      0

表b:

name        date             time        event       next_event
name1       2012-06-02       18:00:00    event1      604800
name1       2012-06-02       19:00:00    event2      
name1       2012-06-02       20:00:00    event3      604800
name1       2012-06-02       21:00:00    event4     
name1       2012-13-02       18:00:00    event1      604800
name1       2012-13-02       20:00:00    event3      604800
name1       2012-20-02       18:00:00    event1      604800
name1       2012-20-02       20:00:00    event3      604800

希望这能带来更多意义。谢谢

使用mysql_fetch_row循环记录。使用if语句检查您必须检查的内容(执行多个副本等)。使用mysql_query向目标表发出INSERT或UPDATE指令。

您也可以使用子选择器,但在某些情况下很难跟踪,您可能会发现最好与php代码结合(或制作使用光标的存储过程)

插入B b2(col1、col2、col3)值(选择a1.col1,a1.col2,(选择a2.col3+(在此处选择日期延迟…)从a2,其中一些标准)从a1,其中一些其他标准)

如果您的表非常大,那么用SQL对所有内容进行编码可能会获得更好的性能。