@alst161

SQL: изменение дубликатов. как сделать?

можно ли реализовать следующее не прибегая к php. имеется таблица url, поле keyword содержит алиас товара, некоторые могут быть одинаковые, как сделать запрос, что бы у дублей изменить алиас ну например добавить рандомную цифру
  • Вопрос задан
  • 422 просмотра
Пригласить эксперта
Ответы на вопрос 2
Winsik
@Winsik
сис.админ, недопрограммист :)
SET @r=0;
select id,tname,CONCAT (taliase , addid) as aliase from 
(
   select * from (
            SELECT  id,tname,taliase,@r:=@r+1 as addid
            FROM FF as f1
            GROUP BY f1.tname,f1.taliase
            UNION 
            SELECT  id,tname,taliase,"" as addid FROM FF as f2
            GROUP BY f2.taliase
            ORDER BY taliase DESC
            ) as t1
   order by t1.id,t1.addid
   
) as t2
group by t2.id

табличка была такая:
CREATE TABLE FF
	(`id` int, `tname` varchar(20), `taliase` varchar(20))
;
	
INSERT INTO FF
	(`id`, `tname`, `taliase`)
VALUES
	(1, 'baranka', 'hleb'),
	(2, 'bulka', 'hleb'),
	(3, 'pirozhok', 'hleb'),
    (4, 'konfeta','sladkoe'),
    (5, 'karamel','sladkoe')
;
Ответ написан
@nozzy
Symfony, Laravel, SQL
update table as t1
inner join 
(
  select 
  keyword,
  count(*) as cnt
  from table
  group by keyword
) t2 on t2.keyword = t1.keyword
set t1.keyword = concat(t1.keyword, floor(rand() * 10000000)) 
where t2.cnt > 1
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы