所有产品名称的和处的引用代码

b4lqfgs4  于 2021-06-24  发布在  Mysql
关注(0)|答案(2)|浏览(293)

我有一个表ps\ U产品:
ps\ U产品

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

和一张table,上面有:
ps\产品\u lang

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

是否有一个mysql脚本可以在phpmyadmin中运行,以便在所有产品名的和处添加引用代码?
结果应该是:
ps\产品\u lang

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

谢谢

a64a0gku

a64a0gku1#

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`, "")

然后我们在末尾加上一个空格

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

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

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

5uzkadbs2#

我觉得这样比较自然:

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

相关问题