|
|
|
| Подскажите как удалить одинаковые Ники в таблице вида:
| |
|
|
|
|
|
|
|
для: Елена Смирнова
(27.03.2008 в 17:31)
| | Вот так не получается =(
DELETE email FROM chat_users123 JOIN
(
SELECT email AS cnt, email FROM chat_users123 GROUP BY email HAVING cnt > 1
)
AS tcnt USING(email)
|
| |
|
|
|
|
|
|
|
для: Елена Смирнова
(27.03.2008 в 18:37)
| | моежет по конкретнее задать вопрос а то как то не понятно. | |
|
|
|
|
|
|
|
для: jeans1986
(27.03.2008 в 19:20)
| | Что не понятного? Нужно удалить дубликаты | |
|
|
|
|
|
|
|
для: Елена Смирнова
(27.03.2008 в 19:40)
| | В запросе явно ошибка в этом:
DELETE email FROM
Поле удалить нельзя. Только строку, т.е. email тут лишнее. | |
|
|
|
|
|
|
|
для: Atheist_?
(27.03.2008 в 19:45)
| | Уже все перепробовала и никак не получается удалить дубликаты из таблицы...
ПОМОГИТЕ плз | |
|
|
|
|
|
|
|
для: Елена Смирнова
(27.03.2008 в 22:31)
| | Типа такого: DELETE `tbl1` FROM `users` `tbl1`, `users` `tbl2` WHERE `tbl1`.`nik` = `tbl2`.`nik` AND `tbl1`.`id` != `tbl2`.`id`
Если в таблице будут два ника "username", то удалятся оба аккаунта. Так надо? | |
|
|
|
|
|
|
|
для: Atheist_?
(27.03.2008 в 23:00)
| | а какой ник из дублирующихся надо удалить? любой?
и удалять надо строку полностью, или просто очистить какие-то поля? | |
|
|
|
|
автор: С телефона (28.03.2008 в 14:34) |
|
|
для: ronin80
(28.03.2008 в 07:39)
| | Надо удалить строки в которых повторяються значения поля id | |
|
|
|
|
автор: С телефона (28.03.2008 в 14:37) |
|
|
для: С телефона
(28.03.2008 в 14:34)
| | Извените, точнее поле nik. | |
|
|
|
|
|
|
|
для: С телефона
(28.03.2008 в 14:37)
| | См. Atheist_? (27.03.2008 в 23:00) | |
|
|
|
|
|
|
|
для: Atheist_?
(28.03.2008 в 15:03)
| | т.е. надо очистить все дублирующиеся поля nik?
или всё таки удалить эти строки?
да, и сколько может быть дублирующихся записей? неограниченное кол-во? | |
|
|
|
|
автор: С телефона (28.03.2008 в 17:12) |
|
|
для: ronin80
(28.03.2008 в 15:48)
| | Именно строки. Неограниченное кол-во | |
|
|
|
|
|
|
|
для: С телефона
(28.03.2008 в 17:12)
| | Вот есть таблица:
id nik pass
1 asd 123
2 asd 321
3 ww 123
4 asd 123
5 ggg 321
6 ggg 123
|
Нужно удалить строки с дубликатами поля id
Должно отсаться:
id nik pass
1 asd 123
3 ww 123
6 ggg 123
|
| |
|
|
|
|
|
|
|
для: Елена Смирнова
(28.03.2008 в 18:46)
| | Никто незнает?! Неверю =) | |
|
|
|
|
|
|
|
для: Елена Смирнова
(28.03.2008 в 21:22)
| |
CREATE TABLE dist_names SELECT id, nik, pass
FROM tbl_name
GROUP BY nik;
|
| |
|
|
|
|
|
|
|
для: Root
(28.03.2008 в 21:50)
| | ещё вопрос на засыпку: а какие именно записи удалять не важно? | |
|
|
|
|
автор: С телефона (28.03.2008 в 23:40) |
|
|
для: ronin80
(28.03.2008 в 22:48)
| | Юмор я смотрю присутствует, а помочь так никто и не помог :( | |
|
|
|
|
|
|
|
для: С телефона
(28.03.2008 в 23:40)
| | что значит не помог?
чем вас запрос не устраивает? | |
|
|
|
|
автор: С телефона (29.03.2008 в 01:39) |
|
|
для: Root
(28.03.2008 в 23:43)
| | Без разницы какие там данные | |
|
|
|
|
|
|
|
для: С телефона
(29.03.2008 в 01:39)
| | так в чем собственно проблема создать таблицу как написано (28.03.2008 в 21:50)
а потом DROP старую и RENAME если нужно.. | |
|
|
|
|
автор: С телефона (29.03.2008 в 03:04) |
|
|
для: Root
(29.03.2008 в 02:14)
| | А разве одинаковых данных не будет в новой таблице? | |
|
|
|
|
|
|
|
для: С телефона
(29.03.2008 в 03:04)
| | delete from table
where nik in (select nik from t as table group by t.nik having count(*)>1)
and id not in (select max(t.id) as id from table as t group by t.id )
попробуй так, таким образом будут удалены все повторяющиеся строки кроме последней из повторяющихся | |
|
|
|
|
|
|
|
для: С телефона
(29.03.2008 в 03:04)
| | >А разве одинаковых данных не будет в новой таблице?
не должно быть :-) | |
|
|
|
|
|
|
|
для: Root
(29.03.2008 в 11:40)
| | Спасибо! Помогла создание новой таблицы... Интересно, а почему дубликаты в нее не записались? Особенности SQL??? | |
|
|
|
|
|
|
|
для: Елена Смирнова
(29.03.2008 в 20:13)
| | Из-за GROUP BY nik | |
|
|
|