Autor | Zpráva | ||
---|---|---|---|
radas Profil * |
#1 · Zasláno: 29. 10. 2009, 18:46:29
Zdravím,
potřeboval bych poradit, mam tabulku kde jsou sloupce id,popis,datum, cen1,cena2,cena3 a ja potřebuji a ja potřebuji z db vydolovat data id,popis a nejmenší cenu z jednoho z těch sloupců cena1,cena2,cena3 cenu s tím že v některých sloupců je buď 0 nebo nějaká hodnota a nebo je všech nějaké číslo. Raději uvedu příklad 1;popis1;datum1;0;2500;1500 2;popis2;datum2;3500;1500;2500 a podtřeboval bych dostat 1-popis1-datum1-1500 2-popis2-datum2-1500 absolutně mě nenapada jak na to... |
||
Taps Profil |
#2 · Zasláno: 29. 10. 2009, 19:21:57
radas:
$dotaz=mysql_query("select min(cena) as nejmensi cena from tabulky group by id"); |
||
radas Profil * |
#3 · Zasláno: 29. 10. 2009, 19:30:33
Taps:
tím nedocilim ale toho co chci ...vyberu jen nejmenší hodnotu v jednom sloupci... |
||
ja Profil * |
#4 · Zasláno: 29. 10. 2009, 20:17:30
najlepsie by bolo normalizovat db
id,popis,datum id(fk),typ_ceny, cena |
||
Joker Profil |
#5 · Zasláno: 29. 10. 2009, 20:57:04
radas:
„mam tabulku kde jsou sloupce id,popis,datum, cen1,cena2,cena3“ Přesně na tomhle místě je třeba se zarazit. Jakmile je nutné indexovat sloupce tabulky (něco1, něco2,...), na 95% je návrh té tabulky špatně. No a jakmile potřebujete kvůli něčemu seskupovat data z těch sloupců dohromady, je návrh tabulky špatně prakticky na 100%. |
||
Kajman_ Profil * |
#6 · Zasláno: 29. 10. 2009, 21:01:40
Možná něco jako
select nullif(least(if(cena1=0,2147483647,cena1),if(cena2=0,2147483647,cena2), if(cena3=0,2147483647,cena3)),2147483647) cena from tabulka s tím, že to velké číslo je třeba měnit v závislosti na použitém datovém typu. |
||
Kajman_ Profil * |
#7 · Zasláno: 29. 10. 2009, 21:03:06
Ale samozřejmě souhlasím, že je normální mít popisově upravenou strukturu :-)
|
||
Časová prodleva: 14 let
|
0