Sql resultaat omdraaien

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ferdi R

Ferdi R

12/08/2015 21:28:02
Quote Anchor link
Ik haal de laatste images op uit een DB, de hoogste datums.

SELECT * FROM regen_radar ORDER by datumtijd DESC LIMIT 24

Als ik het verander naar ASC dan haalt hij de 24 oudste images op en dat wil ik niet.
Maar nu staat het niet op volgorde dus ik moet het resultaat omdraaien, ik het het al geprobeert met een sub maar dat krijg ik niet werkend.

SELECT datumtijd FROM (SELECT * FROM regen_radar ORDER by datumtijd DESC LIMIT 24) AS i ORDER by i.datumtijd ASC
 
PHP hulp

PHP hulp

27/04/2024 00:07:19
 
Thomas van den Heuvel

Thomas van den Heuvel

12/08/2015 21:33:44
Quote Anchor link
Ik heb zo'n donkerbruin vermoeden...

Hoe zien de datums in de kolom "datumtijd" er uit?
 
Ferdi R

Ferdi R

12/08/2015 21:35:32
Quote Anchor link
datetime format
 
Thomas van den Heuvel

Thomas van den Heuvel

12/08/2015 21:38:03
Quote Anchor link
Met het datetime format kun je prima sorteren? DESC voor aflopend (nieuwste eerst) en ASC voor oplopend (oudste eerst).

Wat lukt er precies niet?
 
Richard Snijders

Richard Snijders

12/08/2015 21:39:45
Quote Anchor link
Dit zou moeten werken ervan uitgaande dat datumtijd een datetime kolom is:
SELECT * FROM regen_radar WHERE datumtijd >= DATE_SUB(NOW(),INTERVAL 1 DAY) ORDER by datumtijd ASC

Wat je dus doet:
Selecteer alle kolommen van de regen radar tabel waar de datumtijd kolom hoger of gelijk aan de huidige tijd min 1 dag is en sorteer dat oplopend op datumtijd.
 
Ferdi R

Ferdi R

12/08/2015 21:42:36
Quote Anchor link
Ik heb de nieuwste nodig maar die moeten omgedraaid worden.

Je hebt bijvoorbeeld id 1 t/m 100 in je db staan, met ASC haal de id 1 t/m 24 op en met DESC 76 t/m 100.
Ik heb 76 t/m 100 nodig maar dan 100 t/m 76.

Dus geen:

76
77
78
79
80
ect..

Maar:

100
99
98
97
96
ect..

Toevoeging op 12/08/2015 21:48:47:

Bedank Richard,

Zit ik te worstelen met de sortering van het resultaat terwijl je ook tussen datums kan kiezen. Dit werkt:

SELECT * FROM regen_radar WHERE datumtijd >= DATE_SUB(NOW(),INTERVAL 2 HOUR) ORDER by datumtijd ASC
 
Thomas van den Heuvel

Thomas van den Heuvel

12/08/2015 22:35:29
Quote Anchor link
Je kunt de opgehaalde resultaten natuurlijk ook in omgekeerde volgorde sorteren met een hulparray of deze in omgekeerde volgorde doorlopen met de _data_seek() functie.

Wat je dus eigenlijk wilde is de laatste X resultaten in oplopende volgorde sorteren.
 
Eddy E

Eddy E

12/08/2015 23:38:55
Quote Anchor link
Gewoon een SUBQUERY kan het ook:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
SELECT * FROM (
    SELECT * FROM regen_radar WHERE datumtijd >= DATE_SUB(NOW(),INTERVAL 1 DAY) ORDER by datumtijd ASC
)
AS data
ORDER BY datumtijd DESC
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.