Avatar billede gugi Nybegynder
24. august 2001 - 00:15 Der er 9 kommentarer og
1 løsning

Sortering af rows i en tabel

Kan man på en nem måde sortere sin rows i en database?

Jeg har en tabel med (id, dato, blah, blahblah)

id er en tæller jeg bruger til at holde styr på de andre med.

Men nr. 1, 2 og 3 ligger midt i tabellen.
Avatar billede gugi Nybegynder
24. august 2001 - 00:15 #1
Btw, jeg vil ikke bare sortere når jeg henter dem - det skal være permanent.

Avatar billede henrik_ffc Nybegynder
24. august 2001 - 00:23 #2
Hvorfor ??
Avatar billede stigc Nybegynder
24. august 2001 - 00:26 #3
?
Avatar billede gugi Nybegynder
24. august 2001 - 00:28 #4
? selv
Avatar billede gugi Nybegynder
24. august 2001 - 00:29 #5
henrik_ffc> fordi jeg vil have det bedre med at vide der var orden i min database...

Jeg kan selvfølgelig bare SELECT, DELETE, INSERT..

Hmm... jo det gør jeg.
Avatar billede mkelle1 Nybegynder
24. august 2001 - 00:35 #6
Hej GUGI

Henrik_ffc har ret, det har umiddelbart ikke noget formål at sortere dem, men hvis du af en eller anden grund gerne vil, kan du jo gøre således:

$sql=\"select * from tabel order by id asc\";
$result=mysql_query($sql),
$sql_delete=\"delete from tabel\";
mysql_query($sql_delete);
while ($row=mysql_fetch_array($result))
{
$sql_insert=\"insert into tabel (id,dato,blah,blahblah) values ($row[id],$row[dato],$row[blah],$row[blahblah]\";
mysql_query($sql_insert);
}

Men prøv det først lige på en kopi af din tabel da ovenstående jo sletter alle data i tabellen inden den sætter dem ind igen i ordnet rækkefølge.

Mads
Avatar billede gugi Nybegynder
24. august 2001 - 00:45 #7
Hmm er det PHP?
Det ligner php, jeg ville gerne give nogle point, men jeg har lukket spørgsmålet :o(
Avatar billede stigc Nybegynder
24. august 2001 - 11:35 #8
der findes jo ingen ordnet rækkefølge for databasen  (ved mindre vi snakker indexes), så selv om i prøver at sortere den med ovenstående kode, så kan i ikke regne med de kommer ud i forventet rækkefølge. Databasen hiver den ud på den hurtigstes måde, og det er ikke nødvendigvis i rækkefølge.

Avatar billede henrik_ffc Nybegynder
24. august 2001 - 12:08 #9
stigc har fuldstændig ret her. Det ville svare til at du ville lægge dine filer i alfabetisk orden i dine biblioteker på disken.
Det kan godt være man kan få dem UD sorteret ved fx at skrive \"dir\", men filerne ligger fysisk i den rækkefølge de er lagt ind. Og det har de fleste det fint med. Man KAN sortere dem ved at flytte alle filer og derefter kopiere dem tilbage en for en i den rigtige rækkefølge, men der er absolut ingen fordele forbundet med det.

Og som stigc siger, selvom du får sat alle elementer ind i tabellen i sorteret orden kan en \"select * from tabel\" trække dem ud på en ny måde hver gang (i hvert fald teoretisk).

Desuden vil jeg advare KRAFTIGT mod mkelle1\'s løsning, da den sletter hele tabellen!!
De to første linier kopierer IKKE hele indholdet af tabellen over i hukommelsen, men
laver derimod blot en pointer til resultatet. Linie 3 er derfor fatal for tabellen.
Se linie 5: (myqsl_fetch_array) Her hentes (fetch) informationerne over i hukommelsen,
men eftersom tabellen er slettet er der ikke noget at hente. :-(
Avatar billede gugi Nybegynder
24. august 2001 - 20:31 #10
HEHE, jeg har heller ikke gjort det endnu..

Jeg kunne også godt finde på at sortere filerne på min disk. Det har jeg gjort før. Det er jo bare at rette i FAT\'en :o)

Man er vel gammel DOS\'er ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester