php - 用当前行值更新多行mysql

标签 php mysql

我不知道标题是否清楚,但我会尝试在这里解释一下。我们的数据库有数千条记录,这些表中有几个日期时间列。我们必须使用 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 查询来完成?

最佳答案

你说得对,你应该添加新的 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

关于php - 用当前行值更新多行mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9397308/

相关文章:

php - 在 PHP 中转义 elasticsearch 特殊字符

mysql 选择计数 = 0 的地方

PHP & do/while 循环内存泄漏

.net - 获取一个 MySQL 表的 ID 并将其插入到另一个表中

mysql - 搜索替换多个

javascript - 从linux下载的xls与从windows下载的xls不一样

php - Zend 重定向问题

php - 我应该如何查询 MySQL 以及如何缓存 MySQL 的结果?

php - 将MYSQL表导出到excel

mysql - 自动填充时间维度表