LINUX.ORG.RU
ФорумAdmin

[SQL] Помогите с SELECT'ом

 


0

0

Есть БД и табличка в ней, где индексным полем является текстовое представление IP-адреса, например '172.17.0.1'. При этом допускаются совпадения, т.е. некоторые записи могут иметь одинаковые IP-адреса. Можно ли как-то SELECT'ом выбрать из таблицы только те записи, которые имеют дубликаты по индексному полю (со всеми дубликатами), отфильтровывая все остальные (те, что встречаются только один раз)?


SELECT * FROM ip_adresses, 
  (SELECT ip_addr, count(ip_addr) as ip_cnt FROM ip_adresses GROUP by ip_addr) as ip_dbl 
WHERE ip_adresses.ip_addr = ip_dbl.ip_addr AND ip_dbl.ip_cnt > 1;

Как-то так...

Slavaz ★★★★★
()

select * from xxx_table having count(ip_address)>1 group by ip_address;

cyclope
()

select * from table where ip_addr in (select ip_addr from table group by ip_addr having count(ip_addr)>1)

sabonez ★☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.