Začínáme s MySQL 13 – vestavěné funkce

Diskuze čtenářů k článku

Clarke  |  23. 11. 2001 09:40  | 

Kde je dil 12 ???

Souhlasím  |  Nesouhlasím  |  Odpovědět
Pavel Cvrcek  |  23. 11. 2001 12:39  | 

Dobry den,

na toto tema jsem zde mluvil jiz nekolikrat, ale presto znova. Serial do redakce posilam v podobe cislovani. Prvni vec je ta, ze nekdo toto cislovani (v redakci) u casti dilu odstranil, coz pak dela posloupnost dilu dosti chaoticke. Druha vec je ta, ze cca. 2 dily byli v redakci preskoceny (kdyby dodrzovali cislovani, tak se to nestalo) a tak byli na moji urgenci zverejneny dodatecne. Dil 12 je tento: Začínáme s MySQL – import dat. Za tento "neporadek" se omlouvam, i kdyz to neni moje chyba.

Preji hezky den

Autor clanku

Souhlasím  |  Nesouhlasím  |  Odpovědět
Tomáš Budai  |  23. 11. 2001 11:24  | 

No snad tohle by nefungovalo:

SELECT COUNT<) AS vysledek FROM nazev_tabulky;

Melo by to byt spravne takhle:

SELECT COUNT(*) AS vysledek FROM nazev_tabulky;

Souhlasím  |  Nesouhlasím  |  Odpovědět
Pavel Cvrcek  |  23. 11. 2001 12:42  | 

Dobry den,

samozrejme, ze mate pravdu. Je mi tak trochu zahadou, jak se to tam objevilo. Kouknul jsem se do zdrojoveho dokumentu a tam tato chyba neni. Zdrejme se chyba vyskytla nekde pri konverzi (a neni prvni). Spravne samozrejme je nasledujici:

SELECT COUNT(*) AS vysledek FROM nazev_tabulky;

Preji hezky den

Autor clanku

Souhlasím  |  Nesouhlasím  |  Odpovědět
LoWang  |  23. 11. 2001 18:25  | 

tak aby ignorovalo nulové hodnoty? Taky by mě zajímalo, jestli jde v jednom selectu vybrat více průměrů jako třeba

SELECT AVG(pole1) AS vysledek,AVG(pole2) AS vysledek2 FROM nazev_tabulky;

jde to ?

No já vím že si to můžu zkusit, ale zrovna mi tu jaxi nefachčí terminál

Souhlasím  |  Nesouhlasím  |  Odpovědět
Pavel Cvrcek  |  23. 11. 2001 19:11  | 

Dobry den,

nenapada me jediny duvod, proc by to neslo :)

S pozdravem

Autor clanku

Souhlasím  |  Nesouhlasím  |  Odpovědět
LoWang  |  23. 11. 2001 19:35  | 

Dobrý den, ještě k AVG. Mám tabulku (show columns from tabulka):

+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| auto     | int(11)     |      | PRI | NULL    | auto_increment |
| levels   | tinyint(2)  | YES  |     | NULL    |                |
| levelw   | tinyint(2)  | YES  |     | NULL    |                |
| levelr   | tinyint(2)  | YES  |     | NULL    |                |

a některé hodnoty pole levels jsou nulové, bohužel avg počítá i s těmito hodnotami, ale ony nejdou natsavit na NULL, protože v int nebo tinyint je asi vždycky nula a nikdy NULL, takže nevím jak udělat aby AVG počítalo průměr jen z nenulových hodnot.

Díky za radu...kurnik ale proč se tady při odentrování vždycky udělá mezera jeden řádek :o

Souhlasím  |  Nesouhlasím  |  Odpovědět
jAKUB hLOUSEK  |  23. 11. 2001 22:19  | 

podle mne staci dat v klauzuli WHERE  _sloupec_<>0

operator <> znamena nerovna se

Souhlasím  |  Nesouhlasím  |  Odpovědět
LoWang  |  24. 11. 2001 17:35  | 

Díky už to fachčí, jen s tím nelze selectnout naráz více hodnot do jednoho resultu, protože u některých je třeba levels prázdné, ale levelr ne a stejně by se nezapočítalo.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Tomáš Budai  |  26. 11. 2001 12:50  | 

Zkus pouzit neco takovehleho AVG(IF(pole1==0, NULL, pole1)).

Jestli se nepoletu, tak by to melo fungovat.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Zasílat názory e-mailem: Zasílat názory Můj názor
Aktuální číslo časopisu Computer

Megatest 20 procesorů

Srovnání 15 True Wireless sluchátek

Vyplatí se tisknout fotografie doma?

Vybíráme nejlepší základní desky