Autor Zpráva
Kosa
Profil *
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 *
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 *
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 *
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
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 *
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
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 *
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
Takhle nakrátko a obecně to bylo úplně zbytečné, takže prosím tu dlouhou verzi.
Kajman
Profil
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: