Autor Zpráva
MartinKloubek
Profil
Dobrý den,
nevíte jak odstranit v tabulce duplicitní řádky?.
Zkoušel jsem to přes pole ale těch rádků je 30000 takže to zamrzne..
Myslím že by to mělo jít přímo příkazem pře SQL ale nevím jak.
Mám stejný třeba nazev, misto někdy i 3x a potřebuji aby to v tabulce bylo jen 1x
Už jen kvůli velikost tabulky.
děkuji moc za radu já už nevím co s tím.
M.
ash
Profil
Urob si dump dát z tabuľky.
Vytvor novú tabuľku s rovnakou štruktúrou a stĺpec nazev nastav na UNIQUE.
Natiahni ten dump do novej tabuľky.

Riadky, ktoré majú duplicitnú hodnotu nazev, ti tam nevloží.
MartinKloubek
Profil
To je problém, já potřebuji aby se vyčistila ta daná tabulka.
a potřebuji takový kod který jí bude čistit pravidelně to zařídím přes CRON.
Ty duplicitní řádky dělá jeden systém na který nemám vliv a je potřeba aby se čistila ta daná tabulka
bez nutnosti to překládat do jiné.
Opravdu to nejde přes PHP SQL dotazem přímo do databáze dané tabulky?
M.
Kajman_
Profil *
Jaká db a jaká verze?
MartinKloubek
Profil
MySQL 4.1.11
Kajman_
Profil *
Pokud tam je alespoň nějaký jedinečný sloupeček (minimálně v rámci stejného názvu a místa - v příkladu id), tak by to mohlo být nějak takto...

DELETE FROM tabulka t1 USING tabulka t1, tabulka t2 WHERE t1.nazev=t2.nazev AND t1.misto=t2.misto AND t1.id>t2.id;

Ale radši si to zazálohujte :-)
MartinKloubek
Profil
Je to dost riskantní že by se to mohlo smazat komplet co? Jinak unikátní číslování tam je tak se uvidí..
Kajman_
Profil *
Mělo by to dělat to, co jste chtěl. Otázka je, jestli časem nepřijdete na to, že jste to vlastně takhle nechtěl ;-)

A ještě poznámka.. tím > se říká, že se má nechat nejmenší id. Pokud se má nechat největší, tak použít <. (Při zadání = se to pochopitelně smaže komplet).
Toto téma je uzamčeno. Odpověď nelze zaslat.