Пожалуйста, помогите мне с моим сценарием MySql, я обнаружил ошибку.
У меня есть таблица (tbl_products) с полями p_id и prod_skuid. Я хотел обновить все дубликаты prod_skuid в мои tbl_products.
Вот мой скрипт MySql:
UPDATE tbl_product t1 SET t1.prod_skuid = t.prod_skuid
(
SELECT p_id, prod_skuid from
(SELECT p_id,if(@row = prod_skuid, @count, @count := 1),
CONCAT(prod_skuid, '', @count) as prod_skuid,
@row := prod_skuid,
@count := @count + 1
from tbl_product JOIN (SELECT @count := 0, @row := "") as t
WHERE prod_skuid IN(SELECT prod_skuid from tbl_product group by prod_skuid having count(prod_skuid) > 1)
) as final
) as t
WHERE t1.p_id = t.p_id
Мне удалось отобразить и изменить prod_skuid, просто используя вложенный выбор без scrpit обновления, однако, когда я помещаю скрипт обновления, он говорит, что в моем коде есть ошибка:
SELECT p_id, prod_skuid from
(SELECT p_id,if(@row = prod_skuid, @count, @count := 1),
CONCAT(prod_skuid, '', @count) as prod_skuid,
@row := prod_skuid,
@count := @count + 1
from tbl_product JOIN (SELECT @count := 0, @row := "") as t
WHERE prod_skuid IN(SELECT prod_skuid from tbl_product group by prod_skuid having count(prod_skuid) > 1)
) as final
Ошибка:
Сообщение об ошибке Mysql