SQL order by
Koen Bokern
06/08/2009 12:27:00Hallo iedereen.
Ik heb een tabel met categorien. Elke categorie heeft een ID dat autoincrement is, en primary. Op dit moment sorteer ik het op het ID (ORDER BY id). Dus je krijgt dan gewoon een volgorde als (ID) 1,2,3,4,5. Echter wil ik dat men deze volgorde handmatig kan aanpassen. Dat je bij een formulier bijvoorbeeld invult (1,4,5,2,3).
Nu dacht ik zelf eraan om een nieuwe kolom te maken, en daarin een volgorde opsla. Echter als ik de volgorde wil aanpassen via het formulier, moet ik dan denk ik per categorie minimaal een query doen. Maar graag wil ik het aantal nodige query's beperken.
Zelf dacht ik aan iets als "'ORDER BY id (1,4,5,2,3)'", maar uitaard werkt dit niet.
Is er hiervoor een goede oplossing?
Ik heb een tabel met categorien. Elke categorie heeft een ID dat autoincrement is, en primary. Op dit moment sorteer ik het op het ID (ORDER BY id). Dus je krijgt dan gewoon een volgorde als (ID) 1,2,3,4,5. Echter wil ik dat men deze volgorde handmatig kan aanpassen. Dat je bij een formulier bijvoorbeeld invult (1,4,5,2,3).
Nu dacht ik zelf eraan om een nieuwe kolom te maken, en daarin een volgorde opsla. Echter als ik de volgorde wil aanpassen via het formulier, moet ik dan denk ik per categorie minimaal een query doen. Maar graag wil ik het aantal nodige query's beperken.
Zelf dacht ik aan iets als "'ORDER BY id (1,4,5,2,3)'", maar uitaard werkt dit niet.
Is er hiervoor een goede oplossing?
PHP hulp
22/12/2024 20:07:29Sjoerd
06/08/2009 16:54:00kolom 'ranking' aanmaken, die bij het aanmaken de waarde van zijn ID meegeven, zodat ie aan het begin de laagste waarde heeft.
en dan ORDER BY ranking :)
en dan ORDER BY ranking :)
Whatever Whatever
06/08/2009 17:47:00Volgens mij heb je de ORDER BY FIELD functie nodig:
http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html
A common question on the mailing lists is how to sort results in a particular order. Just use the FIELD function:
SELECT * FROM tickets
ORDER BY FIELD(priority, 'High', 'Normal', 'Low', 'The Abyss');
Volgens mij dan:
ORDER BY FIELD(id, '1', '4', '5', '2', '3')
http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html
A common question on the mailing lists is how to sort results in a particular order. Just use the FIELD function:
SELECT * FROM tickets
ORDER BY FIELD(priority, 'High', 'Normal', 'Low', 'The Abyss');
Volgens mij dan:
ORDER BY FIELD(id, '1', '4', '5', '2', '3')