所有产品名称的参考代码
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
我有一个 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