SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.10.2012 21:56:06

malor
Завсегдатай
Зарегистрирован: 24.05.2007
Сообщений: 49

Убрать дублирующие строки из таблицы (всего содержит пару столбцов).

Как убрать дублирование из таблицы.

Структура:
Два числовых столбца.

Во втором столбце числа могут повторятся. Так вот строки с повторами и хочу убрать.
На самом деле не важно какая строка именно уберется, первая, последняя, или где-то в промежутке.

Пример:

323 1
235 5
233 5
851 8
345 1
189 1
364 4
256 5
356 2
258 8


После применения SQL-запроса должно выглядеть, скажем, так:

235 5
189 1
364 4
356 2
851 8


или так:

345 1
258 8
364 4
256 5
356 2


Как такое наваять?

Отредактированно malor (03.10.2012 21:57:26)

Неактивен

 

#2 03.10.2012 22:13:01

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Убрать дублирующие строки из таблицы (всего содержит пару столбцов).

CREATE TABLE t_copy SELECT max(a),b FROM tablename GROUP BY b;
RENAME TABLE tablename TO t_old, t_copy TO tablename;
DROP TABLE t_old;

Неактивен

 

#3 03.10.2012 22:21:17

malor
Завсегдатай
Зарегистрирован: 24.05.2007
Сообщений: 49

Re: Убрать дублирующие строки из таблицы (всего содержит пару столбцов).

Так получается, что с таким же успехом можно сразу и создать вторую таблицу,
куда селектом из текущей выбрать содержимое второго столбца (1-й никакой
полезной нагрузки не несёт). А потом дропнуть исходную. Без ринеймов каких-либо.
Равноценно?..

Неактивен

 

#4 03.10.2012 22:25:04

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Убрать дублирующие строки из таблицы (всего содержит пару столбцов).

Нет, в этом случае новая таблица будет иметь имя отличное от старого.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson