我有一个名为TICKET
的表。票证中的列中有两个日期字段:
TICKET
----------------------------------------
TICKDATE | ELSDATE | ...
---------------------+-------------+----
yyyy-mm-dd hh:mm:ss yyyy-mm-dd
这两个日期应该始终相同。
我有一系列日期(从7/1到当前),其中ELSDATE为空。我刚刚开始使用sql脚本,我不知道如何更新一列等于另一列。我正在运行一次更新一天的当前脚本是:
update TICKET ELSDATE="yyyy-mm-dd" where date(TICKDATE)="yyyy-mm-dd"
我认为我可以做类似的事情:
update TICKET where ELSDATE="???" date(TICKDATE)<date("2015-09-29")
答案 0 :(得分:3)
如果要在2015年9月29日之前TICKDATE所在的同一行中将ELSDATE的每个值设置为TICKDATE的值,请使用:
UPDATE TICKET SET ELSDATE = TICKDATE where TICKDATE < "2015-09-29"
答案 1 :(得分:2)
是的:
merge([1, 2, 3, 4], [5, 6, 7, 8])();
答案 2 :(得分:1)
您可以在一个查询中执行所有更新,这样您就不必每天都做一次。该查询将每行ELSDATE更改为等于TICKDATE
UPDATE TICKET SET ELSDATE = TICKDATE;
要仅更新ELSEDATE为空的行,您可以使用。
UPDATE TICKET SET ELSDATE = TICKDATE WHERE ELSDATE IS NULL;
要更改2个日期之间的行,请使用BETWEEN子句。
UPDATE TICKET SET ELSDATE = TICKDATE WHERE TICKDATE BETWEEN '2015-07-01' AND CURDATE();