информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
MySQL - Выборка дублирующихся записей 19.06.05 01:45  
Автор: Cyber_Onix Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Всем привет!
Не знаю, в тот ли раздел пишу, но надеюсь что да
есть такой вопрос: каким образом можно выбрать из таблицы все дублирующиеся записи?
имеется таблица в которой есть два поля id (int primary key) и string (text)
в тексте могут быть повторяющиеся записи, но у них будет разный id
как найти такие записи?
строка типа

Код:
select string from current where ((string = string) AND (id != id));

не дает желаемого результата
Я сталкивася с подобной задачей 19.06.05 03:05  
Автор: whiletrue <Роман> Статус: Elderman
Отредактировано 19.06.05 16:40  Количество правок: 4
<"чистая" ссылка>
Только мне надо было выбрать те записи, где сумма максимальна, а мой диалект SQL не поддерживал запись типа "having sum=max(sum)". Пришлось сделать тупо.

--------------------------------

Вот примерно так выбрать все повторяющиеся string
select string from current group by string having count(*)>1

Если надо еще и id, то придется 2 раза одну и ту же таблицу пользовать,
Т.к. count предполагает группировку, а группировать по id - будет не правильно :(

Вот примерно так:
select current.*
from
(select string from current group by string having count(*)>1) as strings
inner join
current
on
strings.string = current.string

Я бы предложил еще такой вариант:
select tab1.*
from
current as tab1
inner join
current as tab2
on
(tab1.string = tab2.string) AND (tab1.id != tab2.id)

.. но не знаю, есть ли в MySQL "distinct"
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach