[SQL] LIMIT en DESC combineren in query: probs *

Pagina: 1
Acties:
  • 113 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • albiez
  • Registratie: September 2000
  • Laatst online: 18-03 16:42
Ik heb een mysql database daarin voer ik het volgende sql commando in: SELECT * FROM ads WHERE adid > 2 ORDER BY adid DESC LIMIT 5
Het is dus de bedoeling dat de waarden 7,6,5,4,3 geselecteerd worden.
Maar mysql selecteerd de waarden 12,11,10,9,8. Hoe zorg ik er voor dat hij zoals het eerste voorbeeld de waarden selecteer?

Acties:
  • 0 Henk 'm!

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 14-06 16:43

Varienaja

Wie dit leest is gek.

SELECT * FROM ads WHERE adid>2 and adid<8 ORDER BY adid DESC

:?

edit:

[code]SELECT * FROM ads
WHERE adid IN
(SELECT adid FROM ads
WHERE adid > 2
ORDER BY adid LIMIT 5)
ORDER BY adid DESC[/code]

Siditamentis astuentis pactum.


Acties:
  • 0 Henk 'm!

Verwijderd

Met DESC in je query sorteer je aflopend (DESCending). Probeer het eens met ASC van ASCending (Oplopend). Je kunt het volgens mij zelfs helemaal weglaten want default wordt er oplopend gesorteerd.

Acties:
  • 0 Henk 'm!

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

de syntax van LIMIT al bekeken ?
[LIMIT [offset,] rows]
als je niet bij het 1e record wil beginnen, moet je dus de offset aangeven ;)
The LIMIT clause can be used to constrain the number of rows returned by the SELECT statement. LIMIT takes one or two numeric arguments. If two arguments are given, the first specifies the offset of the first row to return, the second specifies the maximum number of rows to return. The offset of the initial row is 0 (not 1):
mysql> select * from table LIMIT 5,10; # Retrieve rows 6-15

If one argument is given, it indicates the maximum number of rows to return:
mysql> select * from table LIMIT 5; # Retrieve first 5 rows
te vinden op de SELECT syntax page op mysql.com *D

Acties:
  • 0 Henk 'm!

  • albiez
  • Registratie: September 2000
  • Laatst online: 18-03 16:42
Op dinsdag 26 februari 2002 19:07 schreef Varienaja het volgende:
SELECT * FROM ads WHERE adid>2 and adid<8 ORDER BY adid DESC

:?
Dit kan niet want het kan zijn dat er enkele adid's ontbreken het zou dus best kunnen dat 10,8,5,4,3 geselecteerd moeten worden

Acties:
  • 0 Henk 'm!

  • albiez
  • Registratie: September 2000
  • Laatst online: 18-03 16:42
Op dinsdag 26 februari 2002 19:20 schreef TheRookie het volgende:
de syntax van LIMIT al bekeken ?
[..]

als je niet bij het 1e record wil beginnen, moet je dus de offset aangeven ;)
[..]

te vinden op de SELECT syntax page op mysql.com *D
k thanx dit zal um zijn :)

Acties:
  • 0 Henk 'm!

  • albiez
  • Registratie: September 2000
  • Laatst online: 18-03 16:42
Met limit werkt het dus ook niet :(
Ik ben er wel achter dat deze query "SELECT adid FROM ads WHERE adid < $adidlow ORDER BY adid LIMIT 5" bijna het gewenste resultaat geeft deze query geeft namelijk 3,4,5,6,7 het enige wat nu nog zou moeten is dat de volgorde omgedraaid moet worden dus 7,6,5,4,3.
Nu zou je zeggen dat doe je met ORDER BY adid DESC maar dat werkt dus niet.
Dan worden de bovenste waardes dus 12,11,10,9,8 geselecteerd.

Er zou dus eerst geselecteerd moeten worden en dan pas georderd.

Acties:
  • 0 Henk 'm!

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 07-10-2022
Titel even verduidelijkt :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Acties:
  • 0 Henk 'm!

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Nogmaals: probeer een Offset mee te geven....
Of post (een deel van) de inhoud van je tabel, want ik kan ff niet volgen waarom dit niet met een LIMT opgelost zou kunnen worden ....

edit
SELECT * FROM ads WHERE adid > 2 ORDER BY adid DESC LIMIT 5,5

doet toch wat je wil :?

Acties:
  • 0 Henk 'm!

  • albiez
  • Registratie: September 2000
  • Laatst online: 18-03 16:42
Deze query doet inderdaad wat ik wil alleen als er minder als 5 records zijn geeft query helemaal niks terug.

Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 06-09 02:30

dusty

Celebrate Life!

Op dinsdag 26 februari 2002 19:07 schreef Varienaja een query
Welke versie van MYSQL gebruik jij precies voor deze query?

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • albiez
  • Registratie: September 2000
  • Laatst online: 18-03 16:42
Standaard versie van Redhat 7.2:
mysql Ver 11.15 Distrib 3.23.41, for redhat-linux-gnu (i386)

Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 06-09 02:30

dusty

Celebrate Life!

Op woensdag 27 februari 2002 11:07 schreef albiez het volgende:
Standaard versie van Redhat 7.2:
mysql Ver 11.15 Distrib 3.23.41, for redhat-linux-gnu (i386)
laatste keer dat ik keek heette jij niet Varienaja :)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 14-06 16:43

Varienaja

Wie dit leest is gek.

Op woensdag 27 februari 2002 10:56 schreef dusty het volgende:
Welke versie van MYSQL gebruik jij precies voor deze query?
Ik heb thuis personal Oracle, ik heb geen idee of MySQL een query in een query kan.
edit:
En oracle kan ook geen LIMIT kom ik net achter :P

Siditamentis astuentis pactum.


Acties:
  • 0 Henk 'm!

  • albiez
  • Registratie: September 2000
  • Laatst online: 18-03 16:42
Op woensdag 27 februari 2002 11:24 schreef dusty het volgende:

[..]

laatste keer dat ik keek heette jij niet Varienaja :)
Uhm nee zegt me niks :?

Maar even over het probleem ik denk dat het wel opgelost kan worden met een if statement in php. Kan het alleen niet uitproberen op het moment. (hard aan het werk he :))
Pagina: 1