Autor | Zpráva | ||
---|---|---|---|
Kosa Profil * |
#1 · Zasláno: 3. 2. 2012, 11:52:26
Dobrý den,
mám tabulku se 16ti sloupečky a potřebuju sql dotaz, kterým bych vypisoval od určitého sloupečku do určitého. např od 8 do 16 atd, sice bych mohl udělat select 8, 9, 10,11... ale takových výpisů budu mít docela hodně, takže bych to rád udělal jedním příkazem. dík za pomoc |
||
Sir Tom Profil |
Kosa:
Také dobrý den. Při výběru dat z databáze musíš vždy specifikovat (vypsat) dané sloupce, se kterými chceš pracovat. (Sloupce se totiž mohou měnit, přehazovat, apod.). Pokud budeš mít více dotazů se stejnými sloupci, tak lze si část dotazu (dané sloupce) uložit jako řetězec do proměnné a pak tvořit dotaz s touto proměnnou. |
||
Kosa Profil * |
#3 · Zasláno: 3. 2. 2012, 20:41:53
No to sice jo, jenomže já mám v tabulce 16 sloupců a budu mít minimálně 50 dotazů kde budu vybírat určité sloupce, ale vždy jak jdou za sebou, nikdy na přeskáčku, takže jsem myslel jestli nejde udělat dotaz kam bych v proměnné dával krajní hodnoty od kterého sloupce vypisovat. že bych třeba vypisoval od 1. do 5. sloupce, potom od 7. do 12 atd...
|
||
nightfish_ Profil * |
#4 · Zasláno: 3. 2. 2012, 20:48:18
Kosa:
„mám v tabulce 16 sloupců a budu mít minimálně 50 dotazů kde budu vybírat určité sloupce, ale vždy jak jdou za sebou“ To mi trošku zavání špatným návrhem databáze. Pokud je to ten případ, tak jediným správným řešením je data přeskládat tak, abys nemusel řešit vybírání posloupností sloupců. |
||
Kosa Profil * |
#5 · Zasláno: 3. 2. 2012, 21:24:38
No je to nejjednodušší návrh jaký jsem mohl udělat, jinak bych tu měl asi dalších 6 tabulek navíc...a jak teda přeskládám sloupečky?
|
||
Alphard Profil |
#6 · Zasláno: 3. 2. 2012, 21:31:55
Není to tady explicitně zmíněno, ale předpokládám, že se bavíme o MySQL. Tato databáze nepodporuje žádné rozsahy nebo negace ve výběru sloupců, buď vše (*), nebo vyjmenovat.
„No je to nejjednodušší návrh jaký jsem mohl udělat“ Nejjednodušší (na první pohled) není vždy nejlepší. Rozsáhlejší relační databáze bohužel zpravidla mají hodně vazebních tabulek. Alternativou je třeba NoSQL. Ale to zmiňuji jen tak na okraj, váš problém to nevyřeší. |
||
Kosa Profil * |
#7 · Zasláno: 3. 2. 2012, 21:45:33
ok, tak mě napadlo takový řešení přes php tak bych rád slyšel názor, jestli by to fungovalo, nedovedu si to představit
přes for bych vypisoval názvy sloupečků do proměnné a pak bych udělal SELECT $proměná FROM tabulka... |
||
Keeehi Profil |
#8 · Zasláno: 3. 2. 2012, 21:49:00
Kosa:
To by samozřejmě fungoval, avšak jak psal Alphard, spíš to zavání špatným návrhem databáze. Když nám vysvětlíš o co jde, tak ti můžeme poradit. |
||
Kosa Profil * |
#9 · Zasláno: 3. 2. 2012, 22:15:30
No celý problém se mi zde nechce vypisovat, bylo by to dost dlouhý, zkrátka mám tabulku se sloupci 1-16 potom je tam ID další tabulky a v té jsou 4 sloupečky a 6 řádků a každý řádek znamená počet sloupečků v té danné tabulce např:
v prvním řádku je 4 - 4 - 4 - 4 tyto hodnoty znamenají počet sloupečků který se mají v naší tabulce vypsat. tedy pro první čtyřku to budou sloupečky 1 - 4, pro druhou 5 -9 atd ale taky v druhé tbl může být 1 - 1 - 1 - 13... Já vím zní to jako děsná ptákovina, ale asi by vás nudilo kdybych to rozepisoval, bylo by to na dlouho |
||
Keeehi Profil |
#10 · Zasláno: 4. 2. 2012, 00:22:21
Takhle nakrátko a obecně to bylo úplně zbytečné, takže prosím tu dlouhou verzi.
|
||
Kajman Profil |
#11 · Zasláno: 4. 2. 2012, 01:39:10
Kosa:
Také si myslím, že máte špatný návrh struktury tabulek. Ale jinak ano, díky cyklům for se dá jednoduše sestavit řetězec s vyjemnovanými sloupci. |
||
Časová prodleva: 11 let
|
0