Трудно поставить название, поэтому я прошу прощения за двусмысленность.
У меня есть следующая таблица 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
Чтобы получить избыточные значения, имеющие один и тот же 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
А для исправления нулевых значений вам нужно будет зациклить вышеупомянутые результаты, найти нулевое значение и заменить его предыдущим или следующим результатом.
Других решений пока нет …