我不知道标题是否清楚,但我会在这里解释一下。我们的数据库有数千条记录,并且这些表中有几个日期时间列。我们必须使用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查询可以做到这一点吗?
答案 0 :(得分:0)
你真是太近了。只需删除WHERE子句即可更新单个查询中的所有行。
UPDATE user_table
SET date_joined_int = UNIX_TIMESTAMP(date_joined)
答案 1 :(得分:0)
如果删除WHERE
子句,UPDATE
将应用于表格中的所有行。
UPDATE user_table SET date_joined_int=UNIX_TIMESTAMP(date_joined)
答案 2 :(得分:0)
你没错,你应该添加新的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