所有产品名称的参考代码

Reference code at the and of all product name

我有一个 table ps_product 有:

ps_product

-------------------------
|id_product |reference  |
-------------------------
|1          |c11111     |
|2          |x222222    |
|3          |x222222    |
-------------------------

和一个 table ps_product_lang 与:

ps_product_lang

---------------------------------
|id_product |name               |
---------------------------------
|1          |Disco 1TB          |
|2          |Disco x222222 2TB  |
|3          |Disco 3TB x3333    |
---------------------------------

PhPMyAdmin 中是否有 MySQL 脚本 运行 以在所有产品名称的前后添加参考代码?

结果应该是:

ps_product_lang

---------------------------------
|id_product |name               |
---------------------------------
|1          |Disco 1TB c11111   |
|2          |Disco 2TB x222222  |
|3          |Disco 3TB x3333    |
---------------------------------

谢谢

UPDATE `ps_product_lang` pl
LEFT JOIN `ps_product` p
    ON p.`id_product` = pl.`id_product`
SET pl.`name` = REPLACE(CONCAT(REPLACE(pl.`name`, p.`reference`, ""), " ",p.`reference`), "  ", " ");

首先我们检查旧名称中是否存在引用并将其删除

REPLACE(pl.`name`, p.`reference`, "")

然后我们在末尾添加引用 space

CONCAT(REPLACE(pl.`name`, p.`reference`, ""), " ",p.`reference`)

最后,由于删除了旧名称字段中的引用,我们删除了不需要的双 space。

REPLACE(CONCAT(REPLACE(pl.`name`, p.`reference`, ""), " ",p.`reference`), "  ", " ")

我觉得这样比较自然:

UPDATE ps_product_lang pl, ps_product p SET pl.name = CONCAT(RTRIM(REPLACE(pl.name, p.reference, '')), ' ', p.reference) WHERE p.id_product = pl.id_product