Изтриване на повтарящи се резултати

sMILyTHEone

Registered
Как да премахна повтарящите се резултати примерно имам 3 реда с името sMILyTHEone и искам да премахна 2-то и да остане само едно или 5-6-7 да са пак да остане само едното някой да знае точната заявка ?
 
Чакай сега ако питаш за sql заявка ти имаш начин да направиш името уникално и по този начин sql ще знае и няма да допусне да повтори името.Аз нещо не ти схванах въпроса.
 
заклинанието е DISTINCT. Ако искаш само уникални резултати можеш да използваш
[sql]select distinct field1, field2, field3... from table[/sql]

така SQL ще ти върне само уникалните редове, т.е. тези които имат еднакви field1, field2, field3 ще бъдат скрити и ще ти бъде върнат само един от записите.
 
значи знам за distinct sамо че искам да се изтрият всички резултати където да се повтарят и да остане само 1
 
т.е. трябва ти заявка за изтриване? дай структурата на таблицата и полето(полетата), по които искаш уникалност - в твоя случай май е само name).

На първо четене ако предположим, че таблицата е users и в нея имаш уникално id, а името на полето е name, аз си го представям така:
[sql]
delete from users
where id in (
select id from users where name in (select name from users group by name having count(*)>1))
and
id not in (select min(id) from users where name in (select name from users group by name having count(*)>1))[/sql]

и не забравяй когато имаш DELETE заявка с комплицирани условия ВИНАГИ преди това проверявай резултата, примерно така:

[sql]select * from users
where id in (
select id from users where name in (select name from users group by name having count(*)>1))
and
id not in (select min(id) from users where name in (select name from users group by name having count(*)>1))
[/sql]
 
абсурд този код където ти даде не дава резултат забива направо всичко за 5 секунди и не изважда нищо накрая нито дали има резултати или не...
 
Това е заявката, а по отношение на недаването на резултат си смени темата на phpMyAdmin на Original и ще ти бъде по-комфортно особено с по-тежките заявки. pmahomme е ajax тема и само с firebug можеш да гледаш какво става.

Ако тази заявка не ти харесва единствения друг алгоритъм който аз се сещам е от select distinct да създадеш нова таблица - след това truncate на старата, след това insert от новата в старата и след това drop table на новата.
 
със заявката която ми даде си спрях достъпа на mysql сървъра на супер хостинг къдет съм и нямах достъп до него 12 часа :D:D
 
CREATE TABLE asdf SELECT * FROM таблицата GROUP BY username ORDER BY id ASC;
DROP TABLE таблицата;
RENAME TABLE asdf TO таблицата;
Като задължително си направиш бекъп първо, да не плачеш после :/
 

Back
Горе