Autor | Zpráva | ||
---|---|---|---|
Martin__ Profil * |
#1 · Zasláno: 5. 7. 2007, 20:06:53
Ahoj, mám menší problém s řazením dat.
Jesliže položím dotaz SELECT * FROM `tabulka` WHERE id = '2' || id = '1', vrátí se mi dva řádky. Jsou však seřazené podle id. Takže nejdříve s id rovným jedné a pak dvoum. Proč se to takto samo seřadí? Dělá to u i textových buňěk. Potřeboval bych získat data v tom pořadí, jak jsem se na ně ptal, tedy nejprve druhý (id=2) řádek a pak první (id=1). Dotazy se generují za pochodu a může nastat situace, kdy bude dotaz vypadat takto SELECT * FROM `tabulka` WHERE id = '1' || id = '2', proto nemohu použít něco jako "order by id desc nebo acs". Jak zabráni automatickému řazení? Dík |
||
Taps Profil |
#2 · Zasláno: 5. 7. 2007, 20:14:58
Martin__
Zkus: SELECT * FROM `tabulka` WHERE id = '2' || id = '1' order by id DESC |
||
Martin__ Profil * |
#3 · Zasláno: 5. 7. 2007, 22:52:08
Taps
To nemohu z důvodu uvedených výše. |
||
svadla Profil * |
#4 · Zasláno: 5. 7. 2007, 23:05:22
Taps
no tak podle te tve situace budes menit DESC a ASC v order by ... |
||
Alphard Profil |
#5 · Zasláno: 5. 7. 2007, 23:12:55 · Upravil/a: Alphard
pořadí nezměníš pomocí where, to je pouze filtr, databázi vlastně říkáš, že chceš vrátit záznam, kde id je 1 nebo 2, ne nutně v tomto pořadí
jestli není možné použít order by, tak pomůže více dotazů na databázi a výběr po jednom |
||
Kajman_ Profil * |
#6 · Zasláno: 6. 7. 2007, 22:43:05
SELECT * FROM `tabulka` WHERE id = '2'
union all SELECT * FROM `tabulka` WHERE id = '1' |
||
Martin__ Profil * |
#7 · Zasláno: 7. 7. 2007, 12:47:50
Kajman_
Díky, nakonec jsem to tak vyřešil. Ale zajímalo by mě, jak by se to udělalo, jestliže by nebyl příkaz UNION k dispozici. |
||
nightfish Profil |
#8 · Zasláno: 7. 7. 2007, 13:05:08
jak by se to udělalo, jestliže by nebyl příkaz UNION k dispozici.
už to tu padlo - vybíralo by se po jednom - jeden dotaz do databáze, jeden řádek výsledku otázkou je, zda-li by tvůj problém nešel řešit nějak elegantněji a řazení na základě "pořadí v podmínce WHERE" úplně vynechat |
||
Časová prodleva: 4 dny
|
|||
MzM Profil |
#9 · Zasláno: 11. 7. 2007, 10:57:26
pořadí, takto požadované, je něco, co není až tak běžné. Pokud chci speciální pořadí, které se nedá dostat přes std order podle nějakého sloupečku, tak se, většinou přidává sloupeček, který bude obsahovat něco, podle čeho se to bude dát seřadit v požadovahém pořadí (děsná formulace).
|
||
25k_bezPC_Grr Profil * |
#10 · Zasláno: 12. 7. 2007, 20:58:02
SELECT * FROM `tabulka` WHERE id = '2' || id = '1'
ORDER BY FIELD(id, 2,1) DESC |
||
Časová prodleva: 17 let
|
0