|
|
|
SQL - удаление дубликатов.
|
|||
|---|---|---|---|
|
#18+
Задачка проста. В таблице 3 поля: id, fname, lname. Нужно убрать все строки, где fname + lname повторяются, точнее, должна остаться одна строка, а все ее дубликаты удалить. Уже час мучаюсь, ничего не выходит. Помогите! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2004, 17:41 |
|
||
|
SQL - удаление дубликатов.
|
|||
|---|---|---|---|
|
#18+
Если я правильно понял задачу - то скорей всего так: DELETE FROM table WHERE fname = lname ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2004, 17:53 |
|
||
|
SQL - удаление дубликатов.
|
|||
|---|---|---|---|
|
#18+
Skoree vsego tak (esli id - nomer): DELETE * FROM Table WHERE id NOT in (SELECT max(id) FROM Table GROUP BY fname, lname) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2004, 19:10 |
|
||
|
SQL - удаление дубликатов.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Это даст список id, которые повторяются (если хочешь минимальную из повторяющихся - поставь в запросе MIN(id)). А потом любым скриптовым языком подставь эти id в такой запрос Код: plaintext Это удалит только один дубликат:) Перейти к началу сего текста, пока первый запрос что-то вернёт... Другие предложения? Это не оч. красивое решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2004, 19:15 |
|
||
|
SQL - удаление дубликатов.
|
|||
|---|---|---|---|
|
#18+
Есчо есть мой любимый вариант - отсечение по ключу: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2004, 13:56 |
|
||
|
SQL - удаление дубликатов.
|
|||
|---|---|---|---|
|
#18+
RiskaSkoree vsego tak (esli id - nomer): DELETE * FROM Table WHERE id NOT in (SELECT max(id) FROM Table GROUP BY fname, lname) Это то, что надо. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2004, 16:12 |
|
||
|
SQL - удаление дубликатов.
|
|||
|---|---|---|---|
|
#18+
нашёл в синтаксисе ALTER TABLE Код: plaintext Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2005, 16:19 |
|
||
|
SQL - удаление дубликатов.
|
|||
|---|---|---|---|
|
#18+
Bobik RiskaSkoree vsego tak (esli id - nomer): DELETE * FROM Table WHERE id NOT in (SELECT max(id) FROM Table GROUP BY fname, lname) Это то, что надо. Спасибо! delete * from table ??? что то новое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2005, 17:53 |
|
||
|
SQL - удаление дубликатов.
|
|||
|---|---|---|---|
|
#18+
Народ, вы прежде чем отвечать тестить ответы не пробовали, а то написано, кто во что горазд. fname + lname? Это уникальность по обоим полям одновременно? тогда в решении BigHarry надо unique key ставить по 2 полям сразу а не в отдельности. Опять таки в вопросе надо указывать версию мускуля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2005, 17:12 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=32913364&tid=1854345]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
228ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 576ms |

| 0 / 0 |
