我发现我网站上所有产品的数量都不等于home
类别中的产品数量。这是因为在添加产品期间并不总是选择这个最大的父类别。因此,有些产品属于home
但有些产品属于home
。
虽然我需要为类别ps_product
页面显示正确数量的产品,但我在数据库中查找包含类别但未在ps_product_lang
或{{1}中找到它们的列}}
sql查询背后的想法是什么,可以批量修改数据库中的相应字段,以便我的所有产品都属于类别home
。
您的平常帮助表示赞赏。谢谢。
修改
我发现数据库中的表是ps_category_product
。它是唯一的吗?
这个表是这样的:
+-------------+------------+----------+
| id_category | id_product | position |
+-------------+------------+----------+
| 11 | 1 | 1 |
| 11 | 2 | 2 |
| 11 | 10 | 3 |
+-------------+------------+----------+
我可能需要创建x行(x =产品数量)。每行有id_category = 1和id_product = product id和position = position ++。是最好的方法吗?
有关如何在sql中实现它的任何帮助吗?
再次感谢。
答案 0 :(得分:3)
您可以使用简单的SQL查询将每个产品分配到Home
类别:
INSERT IGNORE INTO ps_category_product SELECT 2, id_product, 0 FROM ps_product
2
通常是id_category
类别的Home
值,0
是position
。
如果您想要唯一的position
值,则需要更复杂的查询:
INSERT IGNORE INTO ps_category_product SELECT 2, id_product, ((SELECT MAX(position) FROM ps_category_product WHERE id_category = 2) + (@inc := @inc + 1)) FROM ps_product INNER JOIN (SELECT @inc := 0) AS i