Toon posts:

[Mysql] Order by VARCHAR met spatie

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik heb een tabel met voornaam, tussenvoegsel en achternaam. Voorbeeld :

JanvdAa
PietBb
KlaasAc vd Bd


Als ik nu een query wil uitvoeren gaat het niet helemaal goed met sorteren.

MySQL:
1
SELECT * FROM persoon ORDER BY achternaam, voornaam


De eerste 2 records gaat goed, maar bij de 3e (waar spaties) inzitten gaat het niet goed. Dit record komt helemaal bovenaan ipv als 2e. Iemand een idee?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
:?
"Ac" zou altijd na "Aa" moeten komen, ongeacht de spaties. Weet je zeker dat dit de situatie is? Wat is je échte (complete!) query?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Trinsec
  • Registratie: Februari 2003
  • Laatst online: 22-09 23:11

Trinsec

Huffi-Muffi-Guffi

Ik heb eerder het gevoel dat het waarschijnlijk 'ac' was zonder hoofdletters. Sommige locales zetten de kleine letters dan voor de hoofdletters. Dat zou het misschien kunnen verklaren.

when the Darkness fell upon us
when the Evil Ones came!
Creatures from the darkest pits of hell they were.
Trinsec's Journal


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

RobIII schreef op donderdag 26 maart 2009 @ 12:17:
:?
"Ac" zou altijd na "Aa" moeten komen, ongeacht de spaties. Weet je zeker dat dit de situatie is? Wat is je échte (complete!) query?
Of er moet een spatie voor Ac staan ;) Tegenwoordig kijkt zowat iedereen via een html-laag naar zijn data en dan zie je die spatie niet...

[ Voor 14% gewijzigd door ACM op 26-03-2009 12:26 ]


Acties:
  • 0 Henk 'm!

  • jvaneijk
  • Registratie: Mei 2003
  • Laatst online: 29-05 12:10

jvaneijk

Dr.Oak

Trinsec schreef op donderdag 26 maart 2009 @ 12:23:
Ik heb eerder het gevoel dat het waarschijnlijk 'ac' was zonder hoofdletters. Sommige locales zetten de kleine letters dan voor de hoofdletters. Dat zou het misschien kunnen verklaren.
Dat heeft toch niets met locales te maken maar toch met de manier waarop order by werkt. volgens mij doet die per char kijken wat het nummer is in de ASCII tabel en dan zit de 'A' (65) voor de 'a' (97)

nvm moet beter lezen :P

[ Voor 3% gewijzigd door jvaneijk op 26-03-2009 13:00 ]

iRacing Profiel


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
ACM schreef op donderdag 26 maart 2009 @ 12:25:
[...]

Of er moet een spatie voor Ac staan ;) Tegenwoordig kijkt zowat iedereen via een html-laag naar zijn data en dan zie je die spatie niet...
Of andere non-printable chars inderdaad, en inderdaad was mijn assumption f*ckup om aan te nemen dat TS dat wel gecontroleerd zou hebben :X

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Mijn eerste voorbeeld was inderdaad niet zo duidelijk. Hieronder een meer 'echte' situatie (uiteraard nog steeds met fictieve namen) :

JanAdel vd Ven
Klaasvan derAa
LeoAanren


Het lijkt mij dat de bovenste als laatste moet komen in een gesorteerd resultaat. Maar zoals hierboven staat komt het eruit gerold.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op donderdag 26 maart 2009 @ 15:54:
Mijn eerste voorbeeld was inderdaad niet zo duidelijk. Hieronder een meer 'echte' situatie (uiteraard nog steeds met fictieve namen) :

JanAdel vd Ven
Klaasvan derAa
LeoAanren


Het lijkt mij dat de bovenste als laatste moet komen in een gesorteerd resultaat. Maar zoals hierboven staat komt het eruit gerold.
Het is al opgelost, bleek een spatie aan het begin te staan...

Acties:
  • 0 Henk 'm!

  • Erikie
  • Registratie: September 2000
  • Laatst online: 22-09 13:55

Erikie

www.erikie.nl

Misschien is trimmen in sql een optie ?

//edit

ah je hebt m al :) Je hebt ook functies als LTRIM(str) , maar t is misschien beter om dit te checken bji je invoer.

[ Voor 62% gewijzigd door Erikie op 26-03-2009 16:00 ]

traktor scratch!

Pagina: 1