Autor | Zpráva | ||
---|---|---|---|
deader Profil |
#1 · Zasláno: 6. 11. 2010, 17:53:07
Zdravím, zajímalo by mě, jestli se dá udělat select, který by vytáhl na prvním místě položky s 'datum'<=dnes and 'datum'>=před týdnem a potom všechny položky ze samé tabulky řazené podle id? Aby prostě upřednostil ty aktuální. Doufám, že pochopíte, jak to myslím :) Pokud to nejde, nevadí, udělám to jako 2 dotazy a spojím phpkem.
|
||
xmark Profil |
#2 · Zasláno: 6. 11. 2010, 17:57:01
Vzhledem k tomu, že bys pak pravděpodobně chtěl těch prvních x nějak odlišit, myslím že si to zbytečně komplikuješ. Cokoliv bys jedním dotazem ušetřil, bys ztratil psaním php omáčky kolem.
|
||
deader Profil |
#3 · Zasláno: 6. 11. 2010, 18:02:06
Odlišit je nechci, jde o výpis aktualit, normálně se řadí podle id, ale teď po mě chtějí, aby při nastavení datumu aktuality v pravý čas "skočila" nahoru. Nemůžu nastavit řazení všech podle datumu, protože pak by nahoře trčely aktuality, které by měly datum třeba příští rok a aktuální by byly pod nimi.
|
||
tiso Profil |
#4 · Zasláno: 6. 11. 2010, 18:23:02
deader: „protože pak by nahoře trčely aktuality, které by měly datum třeba příští rok a aktuální by byly pod nimi“
Ale to práve podmienka „'datum'<=dnes and 'datum'>=před týdnem“ rieši, nie? |
||
deader Profil |
#5 · Zasláno: 6. 11. 2010, 18:44:00
jenže jak to spojit s výpisem všech položek?
|
||
tiso Profil |
#6 · Zasláno: 6. 11. 2010, 18:47:00
deader: a prečo chceš vypísať všetky (s dátumom o rok)?
|
||
deader Profil |
#7 · Zasláno: 6. 11. 2010, 18:50:58
no jak jsem se už zmiňoval, je to výpis všech článků řazených podle id(tedy podle přidání), potřebuji však aby ty, kterým se nastaví nějaké datum, se zobrazili v tom datu na prvním místě.
|
||
tiso Profil |
#8 · Zasláno: 6. 11. 2010, 18:53:39
deader: takže ti stačí toto: where 'datum'<=dnes order by id desc
|
||
deader Profil |
#9 · Zasláno: 6. 11. 2010, 19:15:50
nj, ale já potřebuji, aby se ten článek zobrazil i před svým datem. Akorát až bude to jeho datum, tak by se zobrazil na 1. místě.
|
||
tiso Profil |
#10 · Zasláno: 6. 11. 2010, 20:49:30 · Upravil/a: tiso
|
||
Kajman_ Profil * |
#11 · Zasláno: 6. 11. 2010, 22:58:31
order by (`datum` between '2010-10-31' and '2010-11-06') desc, `id` |
||
tiso Profil |
#12 · Zasláno: 6. 11. 2010, 23:32:07
Sakra, jak to ten Kajman_ robí, že ma takto dostane?
|
||
deader Profil |
#13 · Zasláno: 7. 11. 2010, 17:36:24
Kajman: To je přesně ono, moc díky.
tiso: S union mi to šlo taky, nezobrazí totiž duplicitní položky: The UNION operator selects only distinct values by default. To allow duplicate values, use UNION ALL. > viz.http://www.w3schools.com/sql/sql_union.asp To, že by je zobrazil 2x, by mě nevadilo, ale nepodařilo se mi seřadit ostatní položky. Tohle mi seřadilo položky i z prvního selectu, takže union ztratil význam: SELECT * FROM `clanky` where datum='2010-10-25' union select * from clanky order by id desc A i tobě díky za snahu :) |
||
Časová prodleva: 13 let
|
0