这是一个很难设置标题的人,所以我为歧义道歉。
我有以下MySQL表(它是一个Magento表):
id attr_id store_id entity_id value
----+---------+---------+------------+------------------------
1 45 0 173 Sale Gifts + Apartment
2 45 0 175 Sale Outerwear
3 45 1 175 Sale Outerwear
4 45 0 177 (null)
5 45 1 177 New Arrivals
6 45 0 178 New Tops
7 45 1 178 New Tops
如您所见,除store_id
之外,其他一些行都具有相同的内容。
我想做以下事情:
如果store_id = 0
行包含重复行,但store_id = 1
行且值不同(例如,上面第4行和第5行),请使用store_id = 0
更新行与另一个具有相同的价值。
使用store_id = 1
我知道我可能需要将PHP和MySQL结合使用。我只是不知道MySQL的查询是什么。
任何帮助都会很棒!
修改
上表的最终目标是以下
id attr_id store_id entity_id value
----+---------+---------+------------+------------------------
1 45 0 173 Sale Gifts + Apartment
2 45 0 175 Sale Outerwear
4 45 0 177 New Arrivals
6 45 0 178 New Tops
答案 0 :(得分:1)
为了检索具有相同entity_id的冗余值,您可以执行以下操作:
SELECT
*
FROM
magento m1, magento m2
WHERE
m1.attr_id=m2.attr_id
AND
m1.entity_id=m2.entity_id
AND
m1.id > m2.id
要修复空值,您需要循环上述结果并搜索null并将其替换为上一个或下一个结果。