Autor | Zpráva | ||
---|---|---|---|
MartinKloubek Profil |
#1 · Zasláno: 27. 6. 2006, 20:26:16
Potřeboval bych z velké databáze zjistit u konkrétního sloupku (např. email)
kolikrát je v tabulce (sloupku) duplicitně a případně duplicitní záznamy vypsat. např. jsou 2 řádky z 10000 které mají stejný email muj@email.cz a ty bych potřeboval najít a vypsat. jak na to? Pozor nechci primarní sloupec ty záznamy je potřeba aby byli duplicitní ale jak s nima pracovat aby bylo možné případné duplictní vypsat a ověřit. Hledal jsem všude a nic nenalezl. děkuji moc za radu. martin |
||
djlj Profil |
#2 · Zasláno: 27. 6. 2006, 20:28:47
Nějak takto:
SELECT email, COUNT(id) AS pocet FROM tabulka GROUP BY email ORDER BY pocet Pokud to budete chtít u konkrétního mailu, tak by mělo stačit přidat WHERE email='$email'. |
||
MartinKloubek Profil |
#3 · Zasláno: 27. 6. 2006, 20:32:57
Ne, ne, právě že nechci konkrétní email ale zkontrolovat celou tabulku a všechny co jsou 2x a více
vypsat. |
||
pmasarik Profil |
#4 · Zasláno: 27. 6. 2006, 21:35:59
spýtam sa inak, chceš zabrániť duplicitným záznamom, alebo to potrebuješ na niečo iné?
|
||
Kajman_ Profil * |
#5 · Zasláno: 27. 6. 2006, 21:39:42
zkusil bych
select count(*) pocet, a.* from tabulka a, tabulka b where a.email=b.email and a.id!=b.id group by a.id order by pocet |
||
mila Profil |
#6 · Zasláno: 27. 6. 2006, 21:52:30
SELECT email, count(*) pocet from tabulka having pocet>=2
|
||
MartinKloubek Profil |
#7 · Zasláno: 28. 6. 2006, 17:51:55
pro:pmasarik
nechci zabránit duplicitě ale chci duplicitní najít a vypsat... |
||
MartinKloubek Profil |
#8 · Zasláno: 28. 6. 2006, 17:54:27
PRO : KAJMAN_
a nepočítá se tady se dvěma tabulkami? já že je jen jedna... |
||
Kajman_ Profil * |
#9 · Zasláno: 28. 6. 2006, 21:58:46
a nepočítá se tady se dvěma tabulkami?
Ne. |
||
Leo Profil |
#10 · Zasláno: 28. 6. 2006, 22:05:38
"a nepočítá se tady se dvěma tabulkami?
Ne." Vas zrejme mate to, ze _Kajman nepouziva AS pro prejmenovani, ma tam vlastne tohle: FROM tabulka AS a, tabulka AS b Leo |
||
MzM Profil * |
#11 · Zasláno: 30. 6. 2006, 08:10:56
:-) pořád se motáte kolem správného výsledku:
SELECT email, count(*) pocet from tabulka group by email having pocet>=2 ten group sloučí stejné položky having to omezí na výskyt opakování... |
||
Kajman_ Profil * |
#12 · Zasláno: 30. 6. 2006, 11:52:14
:-) pořád se motáte kolem správného výsledku
Ale v zadání je vypsat počet duplicit a ty řádky (ne jen sloupeček email). |
||
MartinKloubek Profil |
#13 · Zasláno: 30. 6. 2006, 14:04:30
Použil jsem ten první nápad
(SELECT email, COUNT(id) AS pocet FROM tabulka GROUP BY email ORDER BY pocet ) s tím že do $mi[pocet] se předá počet duplicitních emailů . SELECT $sekce, COUNT(id) AS pocet FROM globe_adres GROUP BY $sekce ORDER BY pocet while(($mi = mysql_fetch_array($mista_i))) { if($mi[pocet] > 1){ $pole_email[] = $mi[$sekce]; } } to jsem se uložil do pole a v příštím dotazu je už vypsal dle pole email='$pole_email[$x]' a vypsal po řádkách obsah řádků se stejný emailem pěkně pod sebou.. a od sebe oddělil. Přičemž $sekce jsem použil že jde prohledávat i v jiných sloupkách nežli jen v emailu. |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0