2017-08-15 27 views
0

這是一個難以置入標題的位置,所以我爲歧義道歉。選擇行的位置不止一次存在變化

我有以下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相同的一切。

欲執行以下操作:

  1. 如果具有store_id = 0一個行具有重複行,但與store_id = 1和不同的值(例如,行4和上述5)中,用store_id = 0更新該行與其他人具有相同的價值。

  2. 刪除一行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 
+1

你可以添加一個例子,你的結果應該是什麼樣子? – Twinfriends

回答

1

爲了以檢索具有相同ENTITY_ID redundunt值,你可以這樣做:

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 

並且爲了修復空值,您需要循環上述結果並搜索空值並將其替換爲上一個或下一個結果LT。

+0

雖然這並沒有做到我需要的一切,但這是一個巨大的幫助。如果對這個問題有興趣,我會把我的完整代碼放在一邊。謝謝 – Wildcard27