Stránka 1 z 1

MySQL - jedinečné adresy

Odeslat příspěvekNapsal: 8. 9. 2006 19:11
od www598
Jakým příkazem zjistím počet jedinečných adres(jedno čeho) v MySQL databazi?

//khihihi: upraveny povodne zmasakrovany nazov threadu

Odeslat příspěvekNapsal: 8. 9. 2006 19:14
od Kryštof Korb
moc nechápu ten dotaz, ale jestli chceš něco vyhledat, mělo by to jít normálně buď SQL příkazem enbo přes PHPMyAdmin

Odeslat příspěvekNapsal: 8. 9. 2006 19:29
od www598
tak jinak
mám tabulku:
-----------------------
uživatel l adresa
------------------------
Franta l Praha
Tom l Praha
Honza l Olomouc
Pepa l Brno
Mira l Praha
Olda l Karviná
--------------------

A jakým SQL dotazem zjistím, z kolika měst jsou uživatelé (ze 4 měst )

Odeslat příspěvekNapsal: 8. 9. 2006 19:44
od K8

Odeslat příspěvekNapsal: 8. 9. 2006 19:56
od www598
to K8 dík, ale anglicky umím minimálně a s MySQL taky začínám, tak jestli by jsi mi mohl nahodit, aspoň který je to odstavec, či ještě lépe vypsat. do přesné podoby si už to "snad" doplním.

Odeslat příspěvekNapsal: 8. 9. 2006 20:04
od K8
SELECT adresa FROM tabulka GROUP BY adresa;
tim se ziska seznam jedinecnych mist a zalezi na verzi MySQL, jestli uz umi umi vnorene SELECTY, aby se to znovu sezkupilo a tim se zjistil pocet mest, nebo vyuzit funkce php mysql_num_rows(), ktera k tomuto dotazu vrati pocet radku ve vysledku

Odeslat příspěvekNapsal: 8. 9. 2006 20:10
od Z@chi
nebo treba:
Kód: Vybrat vše
SELECT DISTINCT adresa FROM tabulka;

a mas vybrane vsechny jedinecne adresy. DISTINCT odstrani duplicitni hodnoty.

Odeslat příspěvekNapsal: 8. 9. 2006 20:12
od .ParadoX.
Kód: Vybrat vše
SELECT COUNT(DISTINCT adresa) FROM tabuka;

Odeslat příspěvekNapsal: 8. 9. 2006 20:14
od babca
group by pouzij jen kdyz budes chtit vedet i pocet lidi v danem meste

Kód: Vybrat vše
SELECT adresa, count(adresa) AS pocet_v_danem_meste FROM tabulka GROUP BY adresa


--
To .ParadoX.: zapomnel si na AS

Odeslat příspěvekNapsal: 8. 9. 2006 20:17
od www598
Jj, díky moc! Přesně tohle jsem potřeboval.

Odeslat příspěvekNapsal: 9. 9. 2006 20:33
od .ParadoX.
babca píše:To .ParadoX.: zapomnel si na AS


kde? :) ja cerpal z dokumentace k mysql a ten priklad mi funguje :oops:

Odeslat příspěvekNapsal: 10. 9. 2006 09:57
od babca
Teď sem se dočetl, že použití DISTINCT je velice pomalé. Mnohem lepší prý použít GROUP BY.
Proto buď to mý řešení; nebo to paradoxovo - ale s použitím group by
Kód: Vybrat vše
SELECT COUNT(*) AS pocet FROM tabuka GROUP BY adresa

;)

--
To Paradox:
Kód: Vybrat vše
SELECT COUNT(DISTINCT adresa) FROM tabuka;

Ano, máš to správně.;)

Kdyby bylo třeba
Kód: Vybrat vše
SELECT COUNT(DISTINCT adresa) AS pocet FROM tabuka;

tak po volání $vysledek_pole = mysql_fetch_array($vysledek); by byl počet uložen v proměnné $vysledek_pole['pocet']
U tvýho příkladu je to složitě $vysledek_pole['COUNT(DISTINCT web)'] ... ;)
Ale to už předpokládám že dotyčný pracuje s php. Teď tak koukám, že se tu o php nikdo nezmínil... :P (Tak někdy přístě;))

Odeslat příspěvekNapsal: 10. 9. 2006 17:55
od K8
babca píše:Teď sem se dočetl, že použití DISTINCT je velice pomalé. Mnohem lepší prý použít GROUP BY.t/quote]

To jsem si vyzkousel na vlastni kuzi, proto jsem sem daval reseni s GROUP BY (ale je pravda, ze u me se to projevilo v tabulce kde bylo cca 1 000 000 hodnot)