繁体   English   中英

如何将行从一个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添加了3次。

表一:

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代码结合使用更好(或者使用光标创建存储的proc)

从A a1插入B b2(col1,col2,col3)值(从a a2选择a1.col1,a1.col2,(从a a2选择a2.col3 +(在此处选择日延...),其中有一些条件)在其他条件下)

如果您的表很大,那么用SQL编写所有代码可能会获得更好的性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM