jeg har et lille problem med mysql. det lader til, at når jeg bruger denne kommando:
$resultat = mysql_query("select * from Telefon"); while ($raekke = mysql_fetch_array($resultat)) { echo "Navn: ".$raekke['navn']. " Telefon: ".$raekke['telefon']."<br />"; }
får jeg de ældste data først, istedet for omvendt- hvilket ikke er så smart når det er et nyhedsscript jeg har programmeret. Og da jeg ikke er en snegl til MYSQL går jeg nærmest tabt her :)
Det felt, du vælger at sortere på, bør på en eller anden måde være relevant for det tidspunkt som posterne er lagt i tabellen på. Det kunne f.eks. være feltet med din primær-nøgle, eller måske har du direkte et felt som angiver postnings-tidspunktet?
Bare så du ved det: Når man ikke angiver en sortering, er rækkefølgen "udefineret". Dvs. det kommer måske i samme rækkefølge som det er lagt ind i databasen, men der er ingen garanti. Det kan for den sags skyld ændre sig helt umotiveret, efter systemet har fungeret i månedsvis.
Der er intet som helst umotiveret ved den måde en database henter sine data ud på - med mindre andet er angivet, så forsøger databasen at optimere for hastighed. Det er så en anden snak at det måske ikke altid er indlysende for ikke-specialister at gennemskue systemet.
jeg tror at "undefined" måske snarere er "implementation specific"
relationel database teori og SQL standarden siger at man ikke kan have nogen forventning til rækkefølgen når man ikke angiver ORDER BY
jeg vil tro at alle databaser er deterministiske d.v.s. at den samme rækkefølge af INSERT/DELETE vil give samme rækkefølge i en SELECT uden ORDER BY
men: 1) det er forskelligt fra database til database og det kan være forskelligt fra version til version (og for MySQL's vedkommende også forskelligt for forskellige tabel typer) 2) rækkefølgen giver formentlig ingen mening set udfra en logisk betragtning
nielle: Well, der er vel intet som er umotiveret, alt har jo en årsag. Men hvis ikke man kan sin database-teori (som han jo ikke kan), så er det lidt nytteløst at gøre mere ud af det. Men ja, hastighedsoptimering er der én af faktorerne.
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.