繁体   English   中英

用当前行值更新多行mysql

[英]update multiple rows with current rows values mysql

我不知道标题是否明确,但我会在这里解释。 我们的数据库有成千上万的记录,这些表中有几个datetime列。 我们必须使用unix_timestamp转换为int,但是我无法在MySQL中找出可以更新这些字段的查询。

假设我有一个带有如下字段的简单表:

user_table :
    id : int,
    name : string,
    date_joined : datetime;

要将所有这些date_joined字段都更改为int,我想添加一个int列并将日期作为int复制到新列中,然后删除旧列并重命名我的新列可能是一个解决方案。 我建立了一个小php脚本,然后我的脚本将进行数千个MySQL查询,这相当长。 我的脚本将运行以下查询:

UPDATE user_table SET date_joined_int=UNIX_TIMESTAMP(date_joined) where id = 1
...

使用一个MySQL查询可以做到这一点吗?

你好亲近 只需删除WHERE子句即可在单个查询中更新所有行。

UPDATE user_table 
    SET date_joined_int = UNIX_TIMESTAMP(date_joined)

如果删除WHERE子句,则UPDATE将应用于表中的所有行。

UPDATE user_table SET date_joined_int=UNIX_TIMESTAMP(date_joined)

是的,您应该添加新的INT

ALTER TABLE user_table ADD date_joined_int INT(11) not null;

比转换您的日期

UPDATE user_table SET date_joined_int = UNIX_TIMESTAMP(date_joined);

最后删除date_joined列,并将date_joined_int date_joined_intdate_joined

暂无
暂无

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

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