powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите сгруппировать
10 сообщений из 10, страница 1 из 1
Помогите сгруппировать
    #39514716
Фотография Zenia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такая ситуация, есть таблица со связями товаров.
product_id related_id15311532153115331532153115321533153315311533153270641543168016791680169116911680169116791679168016791691......

можно ли без приминения сторонней программы, только MySql запросами, привести таблицу к такому результату:

product_id related_id1531153215311533706415431680167916801691......

то есть надо удалить дублирующиеся связи.
...
Рейтинг: 0 / 0
Помогите сгруппировать
    #39514734
retvizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
create table test(a int, b int);

insert into test values(1,2),(1,3),(2,1),(2,5),(3,1),(3,4);

select * from test;
+------+------+
| a    | b    |
+------+------+
|    1 |    2 |
|    1 |    3 |
|    2 |    1 |
|    2 |    5 |
|    3 |    1 |
|    3 |    4 |
+------+------+

delete test from test join (select t2.c3 from
(select if(a<=b,a,b) c1, if(a<=b,b,a) c2, concat(a,'_',b) c3 from test) t1 join
(select if(a<=b,a,b) c1, if(a<=b,b,a) c2, concat(a,'_',b) c3 from test) t2
on t1.c1=t2.c1 and t1.c2=t2.c2 and t1.c3<t2.c3) t on concat(a,'_',b)=t.c3;

select * from test;
+------+------+
| a    | b    |
+------+------+
|    1 |    2 |
|    1 |    3 |
|    2 |    5 |
|    3 |    4 |
+------+------+
...
Рейтинг: 0 / 0
Помогите сгруппировать
    #39514799
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
DELETE t1.*
FROM test t1
WHERE t1.a>t1.b
  AND EXISTS (SELECT 1
              FROM test t2
              WHERE t1.a=t2.b 
                AND t1.b=t2.a)
...
Рейтинг: 0 / 0
Помогите сгруппировать
    #39514897
Фотография Zenia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем.
Такая специфическая ситуация, в таблице 90000 записей, очень долго считает (подождал около 10мин и оборвал).
Лучше щас напишу на пехепе функцию и все дела.
А кому интересно, выложу дамп таблицы.
...
Рейтинг: 0 / 0
Помогите сгруппировать
    #39514931
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZeniaСпасибо всем.
Такая специфическая ситуация, в таблице 90000 записей, очень долго считает (подождал около 10мин и оборвал).
Лучше щас напишу на пехепе функцию и все дела.
А кому интересно, выложу дамп таблицы.

Надо индекс чтобы был на эти два поля, a и b.

Запрос по сути медленный, O(N*N) , с индексом будет O(NlogN)
...
Рейтинг: 0 / 0
Помогите сгруппировать
    #39514977
paver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если первым шагом проабдейтить таблицу, приведя в в состояние product_id < related_id.
Ну а затем убить дубли
...
Рейтинг: 0 / 0
Помогите сгруппировать
    #39515026
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
select distinct if(a<=b,a,b) a, if(a<=b,b,a) b from tbl

?
...
Рейтинг: 0 / 0
Помогите сгруппировать
    #39515028
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а, удалить. Простите, невнимательно прочитал.
...
Рейтинг: 0 / 0
Помогите сгруппировать
    #39515103
Фотография Zenia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел Воронцов
Код: sql
1.
select distinct if(a<=b,a,b) a, if(a<=b,b,a) b from tbl

?

Вооо, Супер... Большое спасибо, отработалось за долю секунды.
...
Рейтинг: 0 / 0
Помогите сгруппировать
    #39515197
Павел Воронцов,

Оригинальная замена встроенным least и greatest
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите сгруппировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]