根据另外 2 列值的一部分更新列值
Update column values based on parts of another 2 columns values
我正在尝试将数据库从自定义 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 提前致谢,伙计们! :)
这是您需要的更新查询:(用 table 代替您的 table 名称)
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(post_date)
和 DATE_FORMAT(post_date, "%m")
,您将不得不使用 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")
.
我正在尝试将数据库从自定义 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 提前致谢,伙计们! :)
这是您需要的更新查询:(用 table 代替您的 table 名称)
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(post_date)
和 DATE_FORMAT(post_date, "%m")
,您将不得不使用 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")
.