Toon posts:

[Mysql]Custom order

Pagina: 1
Acties:

Onderwerpen


  • van.der.schulting
  • Registratie: juli 2002
  • Laatst online: 21-06 20:52
Stel ik heb een kolom order_id waarin een order_id meerdere keren kan voorkomen. Ik kan het order_id oplopend en aflopend sorteren in Mysql.
Kan ik mbv Mysql ook de data sorteren in 1 query middels een andere voorgefinieerde volgorde, bijvoorbeeld [3, 2, 1, 4, 5]. Dus eerst alle rijen met order_id = 3, dan order_id = 2, etc...

Ik kan natuurlijk een algoritme schrijven die na het ophalen van de data uit Mysql alles sorteert volgens die volgorde, maar ik vraag me af of ik het ook Mysql al voor me kan laten doen?

edit:

O, ja, ik bedoel natuurlijk dat ik het doe middels een query en niet via een stored_procedure. Ik wil echt weten of ik dit kan doen mbv een query

[Voor 14% gewijzigd door van.der.schulting op 29-10-2010 11:01]


  • CoolGamer
  • Registratie: mei 2005
  • Laatst online: 23-09 13:41

CoolGamer

What is it? Dragons?

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


  • ReenL
  • Registratie: augustus 2010
  • Laatst online: 22-03-2015
Hoe kom je aan de volgorde van die ordernummers

  • Japius
  • Registratie: april 2003
  • Laatst online: 17-06 08:10
Of kijk een stukje daaronder, over het gebruik van FIELD:

code:
1
2
3
4
5
6
7
8
9
10
11
12
create table sorteer(id int not null primary key auto_increment, intNummer int, strNummer varchar(20));
insert into sorteer(intNummer, strNummer) values(1,'1'),(2,'2'),(3,'3'),(4,'4'),(5,'5');
select * from sorteer;
+----+-----------+-----------+
| id | intNummer | strNummer |
+----+-----------+-----------+
|  1 |         1 | 1         | 
|  2 |         2 | 2         | 
|  3 |         3 | 3         | 
|  4 |         4 | 4         | 
|  5 |         5 | 5         | 
+----+-----------+-----------+


Sorteren met behulp van FIELD:
code:
1
2
3
4
5
6
7
8
9
10
select * from sorteer order by field(intNummer,4,3,5,1,2);
+----+-----------+-----------+
| id | intNummer | strNummer |
+----+-----------+-----------+
|  4 |         4 | 4         | 
|  3 |         3 | 3         | 
|  5 |         5 | 5         | 
|  1 |         1 | 1         | 
|  2 |         2 | 2         | 
+----+-----------+-----------+


Het kan zowel op een int() als op een varchar() veld:
code:
1
2
3
4
5
6
7
8
9
10
select * from sorteer order by field(strNummer, 3,2,1,4,5);
+----+-----------+-----------+
| id | intNummer | strNummer |
+----+-----------+-----------+
|  3 |         3 | 3         | 
|  2 |         2 | 2         | 
|  1 |         1 | 1         | 
|  4 |         4 | 4         | 
|  5 |         5 | 5         | 
+----+-----------+-----------+

  • NMe
  • Registratie: februari 2004
  • Laatst online: 13:16

NMe

Quia Ego Sic Dico.

Even doorskippen naar het onderliggende probleem hoor: waarom zou je dit willen?

'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.


  • JapyDooge
  • Registratie: juli 2002
  • Laatst online: 16:21

JapyDooge

NoxiousPluK

NMe schreef op vrijdag 29 oktober 2010 @ 11:21:
Even doorskippen naar het onderliggende probleem hoor: waarom zou je dit willen?
Dat zit ik me eigenlijk ook sterk af te vragen, wat is het nut van een order_id (ervan uitgaande dat dat op de volgorde slaat) bijhouden als je 'm niet aanhoud?

  • van.der.schulting
  • Registratie: juli 2002
  • Laatst online: 21-06 20:52
NMe schreef op vrijdag 29 oktober 2010 @ 11:21:
Even doorskippen naar het onderliggende probleem hoor: waarom zou je dit willen?
Voor een plugin voor Ruby on Rails, searchlogic.

Deze methode (http://rdoc.info/github/b...ers#order-instance_method) accepteert alleen named_scope en named_cope genereert weer alleen SQL queries.
Kort gezegd mbv deze methode kan ik makkelijk en snel data sorteren in views.

  • Davio
  • Registratie: november 2007
  • Laatst online: 13-07 14:13
JapyDooge schreef op vrijdag 29 oktober 2010 @ 11:23:
[...]

Dat zit ik me eigenlijk ook sterk af te vragen, wat is het nut van een order_id (ervan uitgaande dat dat op de volgorde slaat) bijhouden als je 'm niet aanhoud?
Volgens mij kun je beter enforcen dat de order_ids verschillend moeten zijn, dan hoef je niet te goochelen als ze hetzelfde zijn en je de één hoger in de lijst wil dan de ander.

Ik geloof dat zulke order_ids standaard met redelijke increments worden aangemaakt (10 ofzo), zodat je er nog iets tussen kunt kwakken als het niet goed is; geef je hem order_id 15 bijvoorbeeld.
Pagina: 1


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee