![]() |
|
Модераторы: skyboy |
![]()
|
|
| =Женек= |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 20.2.2005 Репутация: нет Всего: 1 |
Господа, вопрос образовался.
Есть таблица, достаточно большая, в которой в результате ошибки программы каждая строка оказалась в двойном экземпляре. Что то вроде 1234 Иванов 1234 Иванов 3421 Петров 3421 Петров 3221 Сидоров 3221 Сидоров Как мне поудалять двойников, то есть оставить по подному экземпляру? Вручную - замучаюсь, там около 700 строк. |
|||
|
||||
| ivashkanet |
|
||||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: нет Всего: 149 |
=Женек=, а есть хоть что-то чем эти строки отличаются?
Должен же быть праймари кей? Если есть, то можно предложить следующее: Id Num Name 1 1234 Иванов 2 1234 Иванов 3 3421 Петров 4 3421 Петров 5 3221 Сидоров 6 3221 Сидоров
Если же уникального идентефикатора у строки нет, то могу предложить хак или бум ждать более опытных sql-щиков. Хак:
P.S. Все эскюэли писались тут же, так что их, возможно, нужно доработать напильником |
||||
|
|||||
| sTa1kEr |
|
||||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: нет Всего: 146 |
Если есть примари кей, то можно так же удалить следующим образом:
Если нету, то, видимо, только воспользовавшись хаком ivashkanet
|
||||
|
|||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Сталкивался с такой проблемой, решал с помощью новой таблицы, куда инсертил данные с помощью параметра IGNORE, и селектом из старой. Но все же, необошлось и без ключей. Т.е. создание уникального ключа из группы полей. А IGNORE как раз позволяет инсертит все, без останов при каждом совпадении.
-------------------- менеджер по кодеврайтингу |
|||
|
||||
| today |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 14.4.2008 Репутация: нет Всего: нет |
Привет, у меня в базе только одно поле может повторяться - flvdoname, остальное все разное
Есть примари кей VID 1,2,3.... Нужно удалить строки, где flvdoname повторяется
Дает мне #1093 - You can't specify target table 'video' for update in FROM clause
Дает мне #1109 - Unknown table 'video' in MULTI DELETE Помогите пожалуйста, нужно тоже подчистить базу |
||||
|
|||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
если ты объявляешь псевдонимы для таблиц(а ты их объявляешь - "t1" и "t2"), ты должен использовать псевдонимы, а не оригинальное название. т.о. запрос должен выглядеть следующим образом:
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |