【发布时间】:2018-02-13 15:32:33
【问题描述】:
我正在从 prestashop 为 magento2 导出我的产品,但我在 prestashop 中的一些产品有多个图像(不是全部)
这是我现在使用的代码。
select ps_product.id_product AS 'sku', ps_product.upc, ps_product.price, ps_product.weight, ps_product.date_add AS 'created_at',
GROUP_CONCAT(DISTINCT(CONCAT('/img/p/',
IF(CHAR_LENGTH(ps_image.id_image) >= 5,
CONCAT(
SUBSTRING(ps_image.id_image, -5, 1),
'/'),
''),
IF(CHAR_LENGTH(ps_image.id_image) >= 4, CONCAT(SUBSTRING(ps_image.id_image, -4, 1), '/'), ''),
IF(CHAR_LENGTH(ps_image.id_image) >= 3, CONCAT(SUBSTRING(ps_image.id_image, -3, 1), '/'), ''),
IF(CHAR_LENGTH(ps_image.id_image) >= 2, CONCAT(SUBSTRING(ps_image.id_image, -2, 1), '/'), ''),
IF(CHAR_LENGTH(ps_image.id_image) >= 1, CONCAT(SUBSTRING(ps_image.id_image, -1, 1), '/'), ''),
ps_image.id_image,
'.jpg')) SEPARATOR ', ') AS 'base_image',
ps_stock_available.quantity AS 'qty', ps_product_lang.description,
ps_product_lang.name,
ps_product_lang.description_short AS 'short_description', ps_product_lang.link_rewrite AS 'url_key',
ps_product_lang.meta_title, ps_product_lang.meta_description,
'simple' AS product_type, 'Default' AS attribute_set_code, 'All' AS categories
from ps_product
INNER JOIN ps_product_lang ON ps_product.id_product=ps_product_lang.id_product
INNER JOIN ps_stock_available ON ps_product.id_product=ps_stock_available.id_product
INNER JOIN ps_image ON ps_product.id_product=ps_image.id_product
GROUP BY ps_product.id_product
ORDER BY ps_product.id_product;
到目前为止,base_image 大部分都有一个,但在 1600 种产品中,我们大约有 200 种产品具有多于一张 magento 翻转的图像。
我已经阅读了 substring_index,但所有示例都是针对它们作为每个值的新列。我想要完成的是将超过一个值的任何内容拆分为名为“additional_images”的第二列。
示例:1.jpg、2.jpg、3.jpg
1.jpg 转到 base_image 和 2.jpg 和 3.jpg 转到 Additional_images 作为逗号值,就像他们在哪里一样。
任何帮助都会很棒!
【问题讨论】:
-
这里stackoverflow.com/questions/46890617/… 发布了一种动态拆分逗号分隔值的方法。