Autor | Zpráva | ||
---|---|---|---|
radas Profil * |
#1 · Zasláno: 8. 1. 2010, 09:40:21
Zdravím,
potřeboval bych udělat vyběr jednoho záznamu z tabulky kde je relativně hodně sloupců, ale některe sloupce obsahují 0,ty které obsahuji 0 vybrat nechci a nevím které budou mít 0 a které ne . A rád bych to nějak udělal aby jsem to nemusel ověřovat přes php, jde to nějak? Raději uvedu přiklad id nazev popis parametr1 parametr2 parametr3 parametr4 parametr5 1 aaa bbb 0 0 3 0 1 a ja bych potřebovall vybrat ten zaznam 1 (to vím to mi stači where id=1) ale potřeboval bych vybrat jen id,nazev, popis a teď jen ty sloupce s nazevem parametr(X) který neobsahuje nulu, tedy v tomto případě parametr 3 a 4 díky za nějaké nápady.. |
||
Joker Profil |
#2 · Zasláno: 8. 1. 2010, 09:47:40
radas:
První věc, jestli ty sloupce jsou skutečně parametr1, parametr2,... tak obecné pravidlo: Jakmile musíte indexovat názvy sloupců (sloupec1, sloupec2,...), skoro určitě máte špatně datový model. A jestli potřebujete něco jako "WHERE podmínku na sloupce", tak tím spíš máte špatně datový model. Pravděpodobně dáváte do sloupců něco, co by mělo být v řádcích nějaké tabulky. |
||
radas Profil * |
#3 · Zasláno: 8. 1. 2010, 10:02:29
pod tím parametrem si můžete představit cenu třeba pro odběratele, pro prodejce atd..prostě je to rozškatulkovane pro uričtě typy kupujících...
|
||
Kajman_ Profil * |
#4 · Zasláno: 8. 1. 2010, 10:55:17
V datovém modelu by tedy měly mít ceny zvlášní tabulku např. (id_vyrobku, id_typu_ceny, cena).
|
||
radas Profil * |
#5 · Zasláno: 8. 1. 2010, 12:16:07
Kajman:
díky...dobře tak je pomoci id budu mit v jine tabulce ale i tak mi to ještě nestači k tomu výběru... |
||
Kajman_ Profil * |
#6 · Zasláno: 8. 1. 2010, 12:28:35
Poté lze napsat dotaz tak, že budou jednotlivé hodnoty pro jeden výrobek ve více řádcích.
|
||
radas Profil * |
#7 · Zasláno: 8. 1. 2010, 12:56:45
Kajman:
prosim šlo by to trochu lepe rozepsat... |
||
Kajman_ Profil * |
#8 · Zasláno: 8. 1. 2010, 13:16:31
Když uděláte dotaz
select * from nova_tabulk_cen where id_vyrobku=5 and cena>0 Dostanete tolik řádků, kolik je pro daný výrobek nenulových cen. SQL je navrhnuté tak, že vrací proměnný počet řádků, ne sloupců. |
||
radas Profil * |
#9 · Zasláno: 8. 1. 2010, 13:25:55
asi jsem to špatně vysvětlil, moje myšlenka právě byla vyhnout se té * za select, abych pak přes php nemusel ověřovat jestli je položka =0 nebo ne(viz uvodní popis situace)...asi to jinak nepůjde...
|
||
Kajman_ Profil * |
#10 · Zasláno: 8. 1. 2010, 13:40:48
Ale tam nebude žádná cena =0, je tam přece podmínka cena>0.
|
||
Časová prodleva: 13 let
|
0