[mysql] resultaat volgorde

Pagina: 1
Acties:

  • Wolfenstein
  • Registratie: September 2000
  • Laatst online: 12-05 16:31
Ik heb de volgende query:

SELECT id FROM tabel WHERE id=2 OR id=1 OR id=4 OR id=3.

Nu is de ID volgorde van het resultaat 1, 2, 3, 4
Wat ik nu wil is dat de volgorde hetzelfde is als de volgorde in de query, dus in dit geval 2, 1, 4, 3.

Hoe krijg ik dit voor elkaar?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Ik denk dat je dat toch echt in je script/programmeeromgeving moet gaan doen, MySQL is niet op zoiets gebouwd.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Wat je kan doen is de query in vier verschillende delen maken en dan met een union. Vervolgens voeg je een kolom toe met de sortering die je wilt.

(dit werkt natuurlijk alleen als het aantal regels niet veranderd).

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 10-11-2025

OkkE

CSS influencer :+

Ik neem aan dat die een voorbeeld query is, en niet de query die je ook echt gebruikt. Maar, ik zou zoals ronaldmathies al zegt, een extra veld toevoegen met de gewenste volgorde. :)

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


  • Wolfenstein
  • Registratie: September 2000
  • Laatst online: 12-05 16:31
ronaldmathies schreef op maandag 14 februari 2005 @ 13:11:
Wat je kan doen is de query in vier verschillende delen maken en dan met een union. Vervolgens voeg je een kolom toe met de sortering die je wilt.

(dit werkt natuurlijk alleen als het aantal regels niet veranderd).
Ik begrijp niet precies wat je bedoeld. Het aantal regels kan echter wel varieeren per query dus het zijn er niet altijd 4.

Verwijderd

SELECT id FROM tabel WHERE id=2 OR id=1 OR id=4 OR id=3.

wordt

SELECT id FROM tabel WHERE id =2
UNION
SELECT id FROM tabel WHERE id =1
UNION
SELECT id FROM tabel WHERE id =4
UNION
SELECT id FROM tabel WHERE id =3

Aangezien id steeds hetzelfde type is krjig je een reeks van id's achter elkaar geplakt in de volgorde die je wilt.

Have fun!

edit : Je zou er ook nog een view van kunnen maken. Dan kan je met de resultaten ook meteen iets :)

[ Voor 14% gewijzigd door Verwijderd op 14-02-2005 14:02 . Reden: toevoeging ]


  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 10-11-2025

OkkE

CSS influencer :+

Misschien is het een idee om even een uitleg te geven over wat de eigenlijke query is, en wat je er mee van plan bent te doen. Zo kunnen wij eventueel gelijk tips geven mocht er een sneller/gebruiksvriendelijker alternatief zijn.

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Verwijderd

Wolfenstein schreef op maandag 14 februari 2005 @ 13:56:
[...]


Ik begrijp niet precies wat je bedoeld. Het aantal regels kan echter wel varieeren per query dus het zijn er niet altijd 4.
met zo'n type query natuurlijk wel, maar eigenlijk hoort daar een

id in (2,4,7,1,5,8)

te staan lijkt me.

  • jochemd
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Verwijderd schreef op maandag 14 februari 2005 @ 14:01:

SELECT id FROM tabel WHERE id =2
UNION
SELECT id FROM tabel WHERE id =1
UNION
SELECT id FROM tabel WHERE id =4
UNION
SELECT id FROM tabel WHERE id =3
Dat biedt geen garanties voor de volgorde. Alleen een expliciete ORDER BY biedt garanties voor de volgorde, oftewel:
code:
1
2
3
4
5
6
7
8
SELECT id
FROM tabel
WHERE id IN (1,2,3,4) 
ORDER BY
  id = 2,
  id = 1,
  id = 4,
  id = 3

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Verwijderd schreef op maandag 14 februari 2005 @ 14:01:
SELECT id FROM tabel WHERE id=2 OR id=1 OR id=4 OR id=3.

wordt

SELECT id FROM tabel WHERE id =2
UNION
SELECT id FROM tabel WHERE id =1
UNION
SELECT id FROM tabel WHERE id =4
UNION
SELECT id FROM tabel WHERE id =3
Dit zou iets anders moeten om te werken:

code:
1
2
3
4
5
6
7
8
SELECT id , 1 as SortOrder FROM tabel WHERE id =2 
UNION
SELECT id , 2 as SortOrder FROM tabel WHERE id =1
UNION
SELECT id , 3 as SortOrder FROM tabel WHERE id =4 
UNION
SELECT id , 4 as SortOrder FROM tabel WHERE id =3 
ORDER BY SortOrder

Oops! Google Chrome could not find www.rijks%20museum.nl

Pagina: 1