Autor | Zpráva | ||
---|---|---|---|
para Profil |
#1 · Zasláno: 21. 10. 2004, 10:41:42
Ahoj nemáte někdo po ruce metodu jak najít duplicitní záznamy v MySql. Podle různých sloupců. DB má cca. 3000 táznamů, ale na tom vlastně moc nesejde.
Díky |
||
Honza Hučín Profil |
#2 · Zasláno: 21. 10. 2004, 13:48:05 · Upravil/a: Honza Hučín
Jedna možnost je spočítat u každé hodnoty, kolikrát se v poli vyskystuje:
select pole, count(*) as pocet from tabulka group by pole To vrátí jednotlivé hodnoty pole a počty výskytů. Pokud bys chtěl mít vypsané jen ty hodnoty, které se vyskytují víc než jednou, přidá se na konec "having pocet>1" nebo "having count(*)>1". Kdybys chtěl vypsat záznamy s duplicitními hodnotami z původní tabulky, chce to poddotaz, což umějí jen některé verze MySQL. SELECT id,pole FROM tabulka WHERE pole = (SELECT pole FROM tabulka GROUP BY pole HAVING Count(*)>1 ); |
||
Webspy Profil |
#3 · Zasláno: 21. 10. 2004, 15:20:35
Honzo, můžeš to napsat jako skript ??? Snažím se naučit MySQL... :-) Dík
|
||
para Profil |
#4 · Zasláno: 21. 10. 2004, 20:44:02
Aha, bezvadný něco takového jsem hledal.
Díky moc |
||
Yuhů Profil |
#5 · Zasláno: 22. 10. 2004, 01:56:19
Webspy, jako skript bys to měl zvládnout taky. Najdi si libovolný příklad v s MySQL a výše uvedený dotaz do něj vlož na jeden řádek.
|
||
Webspy Profil |
#6 · Zasláno: 22. 10. 2004, 13:58:06
To Yuhů: OK, já to zvládnu, ale nechce se mi číst nějaké příručky. Raději rozebírám celé skripty :-)
|
||
Časová prodleva: 3 dny
|
|||
SuE Profil |
#7 · Zasláno: 25. 10. 2004, 17:59:48
trošku off topic a jen ze zvědavosti. K poddotazům - asi na Honzu Hučína :-)
Občas vidívám takové docela složité konstrukce select from select , teď bylo neco i na intervalu s tím select from (select union.... Proč se nepoužívají temp tabulky? Tohle třeba bylo jednoduché ale říkáš, že to zvládnou jen některé verze Mysql. Já jsem dneska přemohla svou nekonečnou lenost a podívala jsem se do specifikace mysql, jestli to jde - a jde. Bud insert into table nebo ručně create table heap ... Totiž mohlo by to být rychlejší, než tlupy vnořených poddotazů - ačkoliv to se asi nejlíp pozná na velké databázi a pomalém serveru :-) |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0