根据另一列的数据更新 MySQL 列

Ada*_*ith 3 mysql sql-update

我有一个名为 的表TICKET。票证的列中有两个日期字段:

TICKET
----------------------------------------
TICKDATE             | ELSDATE     | ...
---------------------+-------------+----
yyyy-mm-dd hh:mm:ss    yyyy-mm-dd
Run Code Online (Sandbox Code Playgroud)

这两个日期应该始终相同。

我有一个日期范围(从 7 月 1 日到当前),其中 ELSDATE 为空。我刚刚开始使用 SQL 脚本,并且不知道如何更新一列以等于另一列。我每天运行更新的当前脚本是:

update TICKET ELSDATE="yyyy-mm-dd" where date(TICKDATE)="yyyy-mm-dd"
Run Code Online (Sandbox Code Playgroud)

我想我能够做类似的事情:

update TICKET where ELSDATE="???" date(TICKDATE)<date("2015-09-29")
Run Code Online (Sandbox Code Playgroud)

woz*_*woz 6

如果要将 ELSDATE 的每个值设置为 TICKDATE 位于 2015 年 9 月 29 日之前的同一行中的 TICKDATE 值,请使用以下命令:

UPDATE TICKET SET ELSDATE = TICKDATE where TICKDATE < "2015-09-29"
Run Code Online (Sandbox Code Playgroud)

  • 如果“TICKDATE”列有索引,则直接比较它的查询可以使用索引来查找与比较匹配的行。从性能角度来看,这比访问每一行以查找匹配的行更好。 (2认同)