sql dopyt

Programovacie jazyky, rady, poradňa...
martin323
Amateur
Amateur
Príspevky: 22
Registrovaný: 14 okt 2008, 17:44

sql dopyt

Príspevok od používateľa martin323 »

Kód: Vybrať všetko

SELECT *, count(hlas) as num FROM hlasy  WHERE ID='$id' group by hlas having  num > 1 ORDER by num DESC
malo by to vybrat hodnotu stlpca hlas, ktory sa v tabulke vyskytuje najviac krat? pretoze mi to nejak blbne...
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

vybere ti to, kde je ID rovnaké ako hodnota v premennej $id. Ak chceš vybrať najpočetnejší prvok, tak:

Kód: Vybrať všetko

SELECT *, count(hlas) as num FROM hlasy group by hlas having  num > 1 ORDER by num DESC
V prvom riadku resultu budeš mať id, hlas, num (teda počet výskytov) a ostatné hodnoty čo sa ti tam evidujú
martin323
Amateur
Amateur
Príspevky: 22
Registrovaný: 14 okt 2008, 17:44

Príspevok od používateľa martin323 »

len ja potrebujem vybrat najpocetnejsi prvok u konkretneho uzivatela, preto to ID.

Kód: Vybrať všetko

id_uzivatela      hlas
1                 2
2                 3
2                 2
1                 3 
1                 5
3                 2 
1                 2
Potreboval by som vybrat hlas ktory sa vyskytuje u uzivatela 1 najviac krat.
Ako tam zapracovat este toto?
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

a ako presne to blbne? imho by to malo fungovat tak ako chces ...
jurko.info
Medium Expert
Medium Expert
Príspevky: 108
Registrovaný: 22 nov 2006, 0:16
Kontaktovať používateľa:

Príspevok od používateľa jurko.info »

A nestačilo by ti náhodou len toto:

Kód: Vybrať všetko

$sql = "SELECT * FROM `hlasy` ORDER BY `hlas` DESC LIMIT 0,1";
martin323
Amateur
Amateur
Príspevky: 22
Registrovaný: 14 okt 2008, 17:44

Príspevok od používateľa martin323 »

jurko.info napísal:A nestačilo by ti náhodou len toto:

Kód: Vybrať všetko

$sql = "SELECT * FROM `hlasy` ORDER BY `hlas` DESC LIMIT 0,1";
Toto by nezoradilo podla obsahu hlasu? Teda najskor by dalo najvacsie cislo, aj keby sa v tabulke vyskytlo len raz...

Mal som tam nejaku inu chybu, ten dopyt bol nakoniec dobry.

Inak zaujima ma ci sa da vybrat pomocou jedneho riadka hodnotu z tabulky:

Kód: Vybrať všetko

return mysql_fetch_array(mysql_query("SELECT nickname FROM users WHERE ID='$id'")); 
Toto vyhodi array. Dalo by sa to tak ze vyberie rovno nickname, co najkratsim kodom?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

mysql_result()
v tvojom prípade:

Kód: Vybrať všetko

return mysql_result(mysql_query("SELECT nickname FROM users WHERE ID='$id'"),0);
fortes
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 47
Registrovaný: 19 máj 2008, 16:18
Bydlisko: TT

Príspevok od používateľa fortes »

Islo by doplnit udaje pomocou jedneho dopytu?
S ciselnymi hodnotami to funguje teda:

Kód: Vybrať všetko

UPDATE tab set stlpec=stlpec+1
ale keby som potreboval doplnit text:

Kód: Vybrať všetko

UPDATE tab set stlpec=stlpec+'dalsi text'
pojde to nejak?
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

Kód: Vybrať všetko

UPDATE tab SET stlpec=CONCAT(stlpec, 'text')
Napísať odpoveď