mysql - 根据另外 2 列值的一部分更新列值

标签 mysql wordpress string-concatenation

我正在尝试将数据库从自定义 CMS 迁移到 WordPress。通过 MySQL 中的 phpMyAdmin,我需要根据另外两个预先存在的列的值生成一个新列:

+------------------+---------------------+--------------------+
| id               | post_date           | guid               |
+------------------+---------------------+--------------------+
| WW955q4ifda1j971 | 2005-08-02 16:51:48 |                    |
| WW955q4m1dlklhx1 | 2005-08-02 16:59:36 |                    |
| WW955q4n3pko4dsw | 2005-08-02 17:01:54 |                    |
+------------------+---------------------+--------------------+

这个新列将称为 guid,并应具有以下值结构:http://www.example.com/wp-content/uploads/2005/08/WW955q4ifda1j971。 jpg

它需要使用部分 post_date 值和整个 id 构建,如下所示:http://www.example.com/wp -content/uploads/[post_date-year]/[post_date-month]/[id].jpg

我对 MySQL 几乎一无所知,这就是为什么我通常通过 phpMyAdmin 工作,我真的需要你的帮助。

希望这不会太令人困惑:P 提前致谢,伙计们! :)

最佳答案

这是您需要的更新查询:(用表替换您的表名称)

UPDATE table
SET guid = CONCAT(
    "http://www.example.com/wp-content/uploads/",
    YEAR(post_date),"/",
    DATE_FORMAT(post_date, "%m"),"/",
    id,".jpg"
);

编辑:这假设 post_date 列具有 DATETIME 数据类型。如果它是 VARCHAR,则必须使用 YEAR(STR_TO_DATE( post_date, "%Y-%m-%d %H:%i:%s"))DATE_FORMAT(STR_TO_DATE(post_date, "%Y-%m-%d %H:%i :%), "%m").

关于mysql - 根据另外 2 列值的一部分更新列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33294668/

相关文章:

wordpress - WordPress网站的团队开发

sql-server - 如何在某些具有 Null 值的情况下连接时删除空格?

python - 在 Django 中连接字符串时如何换行

java - 在pdf中以小字体打印子字符串

mysql - 将数据库从 Postgres 迁移到 MySQL

php - 当用户点击链接时插入 click_url、时间戳和用户名

php - WP - 用于在数据库中创建时间戳的按钮

mysql - 如何在选择或表格的每一行中执行过程

mysql - 通过关系连接用 mysql 返回匹配两个值的行的方法

javascript - 如何从 Wordpress Thickbox 中传递一个值?