2017-08-15 18 views
0

これはタイトルを付けるのは難しいですので、あいまいさをお詫び申し上げます。バリエーションが1回以上ある行を選択してください

私は(それがMagentoのテーブルです)以下のMySQLのテーブルを持っている:

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除いて同じすべてを持っています。

Iは、以下を実行する:

  1. store_id = 0持つ行が重複する行を有するが、store_id = 1と異なる値(例えば、列4と上記5)と、store_id = 0と行を更新する場合他の値と同じ値を持つようにします。

  2. は、私は私はおそらく、このためにPHPとMySQLの両方の組み合わせが必要になります知っているstore_id = 1

で行を削除します。私はちょうどMySQLのクエリが何かを知りません。

助けがあれば助かります。

EDIT

上記の表からの最終的な目標は同じENTITY_IDを持つredundunt値をretriveするためには、以下の

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

で、あなたが行うことができます:

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 

ヌル値を修正するには、上記の結果をループしてヌルを検索し、前回または次のresuに置き換える必要がありますlt。

+0

これは私がそれを必要としたすべてをしなかったが、それは大きな助けとなった。質問に興味があるなら、私は完全なコードを載せます。ありがとうございました – Wildcard27

関連する問題