Toon posts:

[MySQL] sorteren in vergelijking met de WHERE IN clause

Pagina: 1
Acties:

Verwijderd

Topicstarter
Iets apparts, maar wellicht een bekende `feature` (lees: bug) van MySQL?
Ik gebruik een eenvoudige query in PHP, vergelijkbaar met;

code:
1
2
3
4
5
6
7
SELECT
    id,
    omschrijving
FROM
    tablename
WHERE
    ond_id IN('5','1','3')


Echter, in de resultset zitten de rijen nu standaard gesorteerd op `id` ASC.
Is er een mogelijkheid om de volgorde van de IN-clause te behouden of is dit gewoon vervelend gedrag van onze freeware DB genaamd MySQL?

[ Voor 13% gewijzigd door Verwijderd op 09-05-2005 10:57 ]


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Als je geen order clause op geeft dan wordt idd standaard op de primary key gesorteerd.

[ Voor 39% gewijzigd door Michali op 09-05-2005 10:58 ]

Noushka's Magnificent Dream | Unity


  • jochemd
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Als je geen ORDER BY in je query hebt garandeert geen enkele database de volgorde.

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
jochemd schreef op maandag 09 mei 2005 @ 10:56:
Als je geen ORDER BY in je query hebt garandeert geen enkele database de volgorde.
Strikt genomen heb je volgens mij gelijk, maar ik vermoed dat de meeste databases de geclusterde index volgorde aan zullen houden.

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


Verwijderd

Topicstarter
Michali schreef op maandag 09 mei 2005 @ 10:55:
Als je geen order clause op geeft dan wordt idd standaard op de primary key gesorteerd.

offtopic:
future betekent trouwens toekomst, feature is het woord wat je zocht denk ik :P
Klopt... Maandag-bugje in mijn eigen software-systeem..
Ontopic;

Ik moet de vraag inmiddels herformuleren tot 'hoe kan ik sorteren op de waarden in de IN-clause'? Ben overigens benieuwd of dit uberhaubt kan.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

code:
1
2
ORDER BY 
  CASE veld WHEN 5 THEN 1 WHEN 1 THEN 2 WHEN 3 THEN 3 ELSE 0 END

Creatief met sql-functionaliteit

Verwijderd

Topicstarter
ACM schreef op maandag 09 mei 2005 @ 11:00:
code:
1
2
ORDER BY 
  CASE veld WHEN 5 THEN 1 WHEN 1 THEN 2 WHEN 3 THEN 3 ELSE 0 END

Creatief met sql-functionaliteit
Is inderdaad erg creatief, maar wel correct.
Dank voor de tip, voor de liefhebber wat referentie materiaal.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

* drm doet in dergelijke gevallen meestal sorteren op condities
code:
1
ORDER BY id=5 DESC,id=1 DESC,id=3 DESC

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1