Php 使用当前行值更新多行
我不知道标题是否清楚,但我会在这里解释。我们的数据库有数千条记录,这些表中有几个datetime列。我们必须使用unix\u时间戳转换为int,但我无法在MySQL中找到一个更新这些字段的查询 假设我有一个简单的表,其中有这样一个字段:Php 使用当前行值更新多行,php,mysql,Php,Mysql,我不知道标题是否清楚,但我会在这里解释。我们的数据库有数千条记录,这些表中有几个datetime列。我们必须使用unix\u时间戳转换为int,但我无法在MySQL中找到一个更新这些字段的查询 假设我有一个简单的表,其中有这样一个字段: user_table : id : int, name : string, date_joined : datetime; 要将所有这些日期字段更改为int,我认为添加int列并将日期作为int复制到新列中,然后删除旧列并重命名我的新列
user_table :
id : int,
name : string,
date_joined : datetime;
要将所有这些日期字段更改为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\u joined
列,并将date\u joined\u int
重新发送到date\u joined
是否严重?哈哈哈哈,让我来试一试如果你觉得这很有趣的话,试着用一个没有WHERE子句的DELETE
。邪恶的笑