Bekijk Volledige Versie : sorteren van een mysql database
Matthijs de Z
20/10/05, 11:55
Hallo,
is het mogelijk om een tabel in een mysql database te sorteren, bijvoorbeeld
op mijn primary key? Als ik nu de gegevens exporteer met behulp van
PHPmyAdmin naar een CSV file, dan staan de gegevens op basis van invoer
(geloof ik). Ik zou deze echter graag op basis willen hebben van de pk. Die
is bij mij namelijk een datum opmaak zoals 20051020 voor vandaag. Uiteraard
zou ik met een php script wel de tabel leeg kunnen trekken met een sort
descending of iets dergelijks. Maar zit zo'n sorteerfunctie voor de plek
waar de gegevens zijn opgeslagen niet in mysql?
groeten,
Matthijs
Maarten Wierda
20/10/05, 13:15
Matthijs de Z wrote:
> Hallo,
Hoi,
> is het mogelijk om een tabel in een mysql database te sorteren,
> bijvoorbeeld op mijn primary key?
select * from tabel sort by id?
> Als ik nu de gegevens exporteer met behulp van PHPmyAdmin naar een
> CSV file, dan staan de gegevens op basis van invoer (geloof ik).
Wat is daar erg aan?
> Ik zou deze echter graag op basis willen hebben van de pk. Die is bij
> mij namelijk een datum opmaak zoals 20051020 voor vandaag.
Even heel veel vragen:
- Waarom heeft je primary key het formaat van een datum?
- Waarom zou je MySQL dat niet zelf laten doen?
- Wat nu als je twee records hebt die op dezelfde dag zijn ingevoerd? -
- Wil je niet gewoon naats een primary key ook een kolom 'datum_invoer'
o.i.d. gebruiken?
--
Cheers,
Maarten Wierda
Matthijs de Z
20/10/05, 13:55
> > is het mogelijk om een tabel in een mysql database te sorteren,
> > bijvoorbeeld op mijn primary key?
>
> select * from tabel sort by id?
select * from tabel sort by datum ;-)
> > Als ik nu de gegevens exporteer met behulp van PHPmyAdmin naar een
> > CSV file, dan staan de gegevens op basis van invoer (geloof ik).
>
> Wat is daar erg aan?
ik vroeg me af of het niet sneller gaat als de primary key gesorteerd is.
> > Ik zou deze echter graag op basis willen hebben van de pk. Die is bij
> > mij namelijk een datum opmaak zoals 20051020 voor vandaag.
> Even heel veel vragen:
>
> - Waarom heeft je primary key het formaat van een datum?
Makkelijk zoeken, al had het ook gekund met een oplopende int als pk.
> - Waarom zou je MySQL dat niet zelf laten doen?
wat? die pk of het optimaliseren?
> - Wat nu als je twee records hebt die op dezelfde dag zijn ingevoerd? -
Dat is voor de in te voeren data onmogelijk. Gelukkig ;-)
> - Wil je niet gewoon naats een primary key ook een kolom 'datum_invoer'
> o.i.d. gebruiken?
Ik heb daar wel even over nagedacht, maar ik zag het nut er niet van in. De
zoekopdrachten zullen toch uitgevoerd worden op de datum en er is geen
verband tussen meerdere tabellen.
Groeten,
Matthijs
Ronald Klip
20/10/05, 14:15
Matthijs de Z schreef:
>
> is het mogelijk om een tabel in een mysql database te sorteren, bijvoorbeeld
> op mijn primary key? Als ik nu de gegevens exporteer met behulp van
> PHPmyAdmin naar een CSV file, dan staan de gegevens op basis van invoer
> (geloof ik). Ik zou deze echter graag op basis willen hebben van de pk. Die
> is bij mij namelijk een datum opmaak zoals 20051020 voor vandaag. Uiteraard
> zou ik met een php script wel de tabel leeg kunnen trekken met een sort
> descending of iets dergelijks. Maar zit zo'n sorteerfunctie voor de plek
> waar de gegevens zijn opgeslagen niet in mysql?
ALTER TABLE tabel ORDER BY col;
Zit ook ergens in phpmyadmin: tabblad 'handelingen'.
Aangezien die volgorde door inserts en deletes gewijzigd kan worden, kun
je echter net zo goed sorteren op het moment dat je de data ophaalt met
een SELECT ... ORDER BY col.
--
groet, Ronald
Matthijs de Z
20/10/05, 16:05
> ALTER TABLE tabel ORDER BY col;
AH, ok. Dit ga ik eens bekijken
> Zit ook ergens in phpmyadmin: tabblad 'handelingen'.
oh, even overheen gekeken dan...
Bedankt voor de tip.
groeten,
Matthijs
> Aangezien die volgorde door inserts en deletes gewijzigd kan worden, kun
> je echter net zo goed sorteren op het moment dat je de data ophaalt met
> een SELECT ... ORDER BY col.
Maarten Wierda
20/10/05, 19:25
Matthijs de Z wrote:
>> - Waarom zou je MySQL dat niet zelf laten doen?
>
> wat? die pk of het optimaliseren?
Die pk.
>> - Wil je niet gewoon naats een primary key ook een
>> kolom 'datum_invoer' o.i.d. gebruiken?
>
> Ik heb daar wel even over nagedacht, maar ik zag het nut
> er niet van in. De zoekopdrachten zullen toch uitgevoerd
> worden op de datum en er is geen verband tussen meerdere
> tabellen.
Is dat een voorwaarde dan? Een verband met andere tabellen?
--
Cheers,
Maarten Wierda (verder ook geen expert maar doet z'n best)
Matthijs de Z
20/10/05, 19:35
"Maarten Wierda" <moart3nAT@chelloDOT.nl> wrote in message
news:dj8je8$kj5$1@nl-news.euro.net...
> Matthijs de Z wrote:
>
> >> - Waarom zou je MySQL dat niet zelf laten doen?
> >
> > wat? die pk of het optimaliseren?
>
> Die pk.
Als ik even snel wil kijken (visueel) of alles netjes is opgehaald, dan hoef
ik niet te gaan lopen scripten maar kan ik gewoon een export naar CSV file
doen, en dan staat alles netjes. Dat is eigenlijk de enige reden om het
"netjes" te zetten.
> Is dat een voorwaarde dan? Een verband met andere tabellen?
nee, volgens mij niet echt. Maar ik kon met de beste bedoelingen het nut van
een kolom id met automatisch oplopende waarde echt niet verzinnen, aangezien
er een kolom is die altijd uniek is. Vandaar dus.
Mazzel,
Matthijs
>
>
> --
> Cheers,
> Maarten Wierda (verder ook geen expert maar doet z'n best)