Autor | Zpráva | ||
---|---|---|---|
Pepik Profil * |
#1 · Zasláno: 23. 9. 2012, 14:21:46
Zdravím,
jak docílit vynásobení vybraných polí v mysql? Mám toto: mysql_query("SELECT * FROM tabulka WHERE id IN(".str_replace('-',',',$id).")"); A potrebuji vynasobit vybrana data ze sloupce "cena". Neví někdo jak na to? V dokumentaci jsem našel operátor * ale ten je pro násobení svou sloupců. Děkuji |
||
Alphard Profil |
#2 · Zasláno: 23. 9. 2012, 14:29:36
Sloupec můžete nahradit číslem
select 2*2 |
||
Pepik Profil * |
#3 · Zasláno: 23. 9. 2012, 14:35:57
Díky.
Zkusil jsem tedy "SELECT cena*2 FROM tabulka WHERE id IN(".str_replace('-',',',$id).")" |
||
Tori Profil |
#4 · Zasláno: 23. 9. 2012, 14:45:25
Pepik:
Jak špatně? Je ten sloupec číselného typu? |
||
Pepik Profil * |
#5 · Zasláno: 23. 9. 2012, 14:55:27
V DB mam u slouce cena decimal(10,2) (typ).
V polích je: 3.50*2.10*1.00 = 7,35 Ale PHP vrátí 7.00 (není tam zaokrouhlování). |
||
DJ Miky Profil |
Tedy potřebuješ vynásobit hodnoty ze všech řádků mezi sebou (= produkt), podobně jako SUM() sčítá? MySQL na to nemá přímo funkci, ale dá se to obejít takto:
SELECT EXP(SUM(LOG(COALESCE(`cena`,1)))) FROM `tabulka` WHERE ... Jenom pozor, vzhledem k použitým funkcím nevyjde celé číslo a nemusí vyjít úplně přesně (čím větší počet čísel, tím méně přesnější), takže je potřeba zaokrouhlovat na vhodný počet desetinných míst. Alternativou je vrátit všechny hodnoty do PHP a vynásobit je až v PHP (pokud jich je málo, bude to zřejmě rychlejší a přesnější než výše uvedené řešení). |
||
Pepik Profil * |
#7 · Zasláno: 23. 9. 2012, 16:58:34
DJ Miky:
„Tedy potřebuješ vynásobit všechny sloupce mezi sebo“ Nene potřebuju vynásobit vybrané ceny v jednom sloupci (ceny). |
||
DJ Miky Profil |
#8 · Zasláno: 23. 9. 2012, 18:21:00
Pepik:
„Nene potřebuju vynásobit vybrané ceny v jednom sloupci (ceny).“ Ano, omlouvám se, myslel jsem řádky, ne sloupce - hodnoty ze všech řádků v jednom sloupci. Příspěvek jsem upravil. |
||
Alphard Profil |
#9 · Zasláno: 23. 9. 2012, 18:33:07
Pepik:
Můžete uvést příklad? Já si myslím, že DJ Miky vám pořád radí něco, co vůbec nechcete. Já váš dotaz chápu tak, že chcete jednotlivě v každém řádku vynásobit sloupec konstantou. MySQL samozřejmě umí počítat s desetinnými čísly, zkuste dotaz [#3] spustit přímo v nějakém databázovém adminu, jestli to taky zaokrouhlí. Mně to nedělá. |
||
Pepik Profil * |
#10 · Zasláno: 23. 9. 2012, 18:36:21
To je přesně ono :-).
Díky moc, myslel jsem, že to bude lehčí. |
||
Časová prodleva: 12 let
|
0