[PHP/MYSQL] ORDER BY, ORDER

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Kom er even niet uit:

DB:[letter]
123
a
b
c
d
r
s
t
z
software

Nu wil ik alle distinct letters eruit halen in deze volgorde:
- 123
- a-z
- software

Ik heb:

SELECT DISTINCT(letter) FROM table ORDER BY length(letter), letter

Het probleem is echter dat dan 123 en software onderaan komen te staan. Hoe kan ik zorgen dat hij eerst naar de letter kijkt(en 123 eerst pakt) en dan software als laatste pakt?

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 07 januari 2003 @ 18:19:
Kom er even niet uit:

DB:[letter]
123
a
b
c
d
r
s
t
z
software

Nu wil ik alle distinct letters eruit halen in deze volgorde:
- 123
- a-z
- software

Ik heb:

SELECT DISTINCT(letter) FROM table ORDER BY length(letter), letter

Het probleem is echter dat dan 123 en software onderaan komen te staan. Hoe kan ik zorgen dat hij eerst naar de letter kijkt(en 123 eerst pakt) en dan software als laatste pakt?
dat klopt toch ook, aangezien je eerst op de lengte sorteert, dus de entries met de minste tekens komen eerst

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja, maar mijn vraag is hoe ik dit kan bereiken:

123
a
b
....
z
software

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 07 January 2003 @ 18:38:
Ja, maar mijn vraag is hoe ik dit kan bereiken:

123
a
b
....
z
software
ik heb ff wat geprobeerd, maar volgens mij is dit niet goed mogelijk met mysql
wat je wel zou kunnen doen is gewoon sorteren, en dan met php de woorden onderaan zetten dmv een array

Acties:
  • 0 Henk 'm!

Verwijderd

Je kan de eerste letter krijgen met CONCAT()

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 07 januari 2003 @ 19:15:
Je kan de eerste letter krijgen met CONCAT()
huh?
met concat() plak je juist 2 strings (of whatever) aan elkaar, toch?

http://www.mysql.com/doc/en/String_functions.html

Acties:
  • 0 Henk 'm!

Verwijderd

Sorry, ik dacht het even uit mijn hoofd te beantwoorden, maar het idee zal duidelijk zijn.

De functie die je kan gebruiken: SUBSTRING (of MID).

Acties:
  • 0 Henk 'm!

  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08 14:36
Waarom niet zo?
SELECT DISTINCT(letter) FROM table ORDER BY letter

| Toen / Nu


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Euh, volgens mij moet je even beter uitleggen wat je wilt...

Want als je "123" en "a-z" en "software" in je DB hebt staan, dan kan je daar nooit op sorteren met wat jij wilt natuurlijk.

En 123, a... z sorteren is ook niet echt mogelijk, wat wil je nou precies bereiken?

[ Voor 81% gewijzigd door ACM op 07-01-2003 19:40 ]

Pagina: 1