我有一张表ps_product:
ps_product
-------------------------
|id_product |reference |
-------------------------
|1 |c11111 |
|2 |x222222 |
|3 |x222222 |
-------------------------
和表ps_product_lang:
ps_product_lang
---------------------------------
|id_product |name |
---------------------------------
|1 |Disco 1TB |
|2 |Disco x222222 2TB |
|3 |Disco 3TB x3333 |
---------------------------------
是否有一个MySQL脚本可以在PhPMyAdmin中运行,以便在所有产品名称中添加参考代码?
结果应为:
ps_product_lang
---------------------------------
|id_product |name |
---------------------------------
|1 |Disco 1TB c11111 |
|2 |Disco 2TB x222222 |
|3 |Disco 3TB x3333 |
---------------------------------
由于
答案 0 :(得分:0)
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`), " ", " ")
答案 1 :(得分:0)
我认为这种方式更自然:
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