powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Поиск парных записей в базе (дубликаты по набору полей)
6 сообщений из 6, страница 1 из 1
Поиск парных записей в базе (дубликаты по набору полей)
    #38706512
qshar7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Мне необходимо найти в базе все записи, которая имеет N полей с одинаковыми значениями как минимум с одной из оставшихся записей. Как частный вариант - это когда отличается значение только одного значимого поля (помимо ID и неактуальных полей).
Т.е., если есть база вида:
id | поле1 | поле2 | поле3 | поле4 |
------------------------------------
1 | 111 | 22 | 333 | 44
2 | 111 | 22 | 555 | 66
3 | 222 | 33 | 645 | 77
4 | 222 | 33 | 777 | 88
5 | 333 | 44 | 555 | 99
6 | 444 | 44 | 555 | 11
7 | 222 | 33 | 111 | 22

и надо найти пары (дубликаты) по полям 1 и 2, то в выборку должны попасть строки с ID 1,2,3,4,7.

Можно ли решить данную задачу без применения хранимых процедур? Возможно, независимо от ответа, есть какое-то готовое решение?
...
Рейтинг: 0 / 0
Поиск парных записей в базе (дубликаты по набору полей)
    #38706563
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qshar7,

group by + having count
...
Рейтинг: 0 / 0
Поиск парных записей в базе (дубликаты по набору полей)
    #38706833
qshar7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

SELECT *
FROM base as t
WHERE (t.field1 = 1)
AND (
(t.field2, t.field3, t.field4)
IN (
SELECT t2.field2, t2.field3, t2.field4
FROM base as t2
GROUP BY t2.field2, t2.field3, t2.field4
HAVING COUNT( * ) >1
)
);


выдает ерунду.
...
Рейтинг: 0 / 0
Поиск парных записей в базе (дубликаты по набору полей)
    #38706948
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы хотитеqshar7надо найти пары (дубликаты) по полям 1 и 2, а пишетеqshar7GROUP BY t2.field2, t2.field3, t2.field4, и после этого удивляетесь, что запрос
qshar7выдает ерунду.?
...
Рейтинг: 0 / 0
Поиск парных записей в базе (дубликаты по набору полей)
    #38707050
qshar7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

ну сначала все-таки надо сгрупировать все записи по комбинации полей-дубликатов? Надо ведь знать, какие комбинации имеют дубликаты. И этот запроса отдельно - работает. А вот правильно сделать выборку на основании его результата - не получается.
...
Рейтинг: 0 / 0
Поиск парных записей в базе (дубликаты по набору полей)
    #38707068
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT *
FROM table
WHERE (fld1,fld2) IN (
                      SELECT fld1,fld2
                      FROM table
                      GROUP BY fld1,fld2
                      HAVING COUNT(id)>1
                     )
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Поиск парных записей в базе (дубликаты по набору полей)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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