Avatar billede googolplex Novice
20. august 2003 - 22:17 Der er 14 kommentarer og
1 løsning

Tilfældige udtræk af database

Hvordan trækker jeg nemmest X tilfældige rækker ud af en MySQL database. Jeg ved der er nogle problemer med RAND(), så det er i orden hvis I viser mig et PHP-workaround :-)
Avatar billede ahv Nybegynder
20. august 2003 - 22:22 #1
<?php
$res = mysql_query("SELECT COUNT(*) FROM tabel");
$rows = mysql_result($res,0);
$start = rand(0,($rows-1));
$res = mysql_query("SELECT * FROM tabel LIMIT $start,1);
$row = mysql_fetch_array($res);
echo $row['felt'];
?>
Avatar billede tipsen Nybegynder
20. august 2003 - 22:24 #2
pseudo-kode:

$total = SELECT COUNT(*) from tabel ORDER BY id ASC
$randomtal = mt_rand(0, $total-1);
$tilfældigpost = SELECT * FROM tabel ORDER BY id ASC LIMIT $randomtal, 1
Avatar billede googolplex Novice
20. august 2003 - 22:25 #3
Den har jeg lige fundet ved 'søgning' og brugt et sted, men nu skal jeg bruge en der kan udtrække X tilfældige rækker.

Havde forestillet mig noget lignende ovenstående, men med array_rand(), er bare for træt til at lave det :(
Avatar billede tipsen Nybegynder
20. august 2003 - 22:25 #4
damn... - sådan går det når man bliver "forstyrret" af telefonen og først poster når man er færdig med samtalen...
Avatar billede tipsen Nybegynder
20. august 2003 - 22:25 #5
har du prøvet at bruge rand() i mysql - det kan jo være du har en af de "gode" mysql-versioner.
Avatar billede tipsen Nybegynder
20. august 2003 - 22:26 #6
Hvis dine id-numre altid er fortløbende og går fra 1, er det muligt at lave en løsning med flere poster uden brug af mysqls rand()
Avatar billede googolplex Novice
20. august 2003 - 22:26 #7
Ja og nej :(
Avatar billede Slettet bruger
20. august 2003 - 22:26 #8
Hvad er problemerne med rand()? .. ORDER BY RAND() LIMIT X

Er den defekt i nogle versioner eller?
Avatar billede googolplex Novice
20. august 2003 - 22:28 #9
Det er jeg ikke sikker på at de er. Ville gerne have en løsning hvor jeg kun behøver ET udtræk. Det er faktisk mest udtrækket jeg er i tvivl om, kan man trække to rækker ud med hver sit ID i en omgang ?
Avatar billede googolplex Novice
20. august 2003 - 22:28 #10
mercur8: ja.
Avatar billede tipsen Nybegynder
20. august 2003 - 22:33 #11
mercur8: Der er nogle issues, både mht. versioner samt os'er!
Avatar billede googolplex Novice
20. august 2003 - 22:35 #12
Hvis jeg har (fx.) 3 ID'd (ikke fortløbende), kan jeg så trække de 3 rækker ud på en gang ?
Avatar billede detox Nybegynder
20. august 2003 - 22:46 #13
SELECT * FROM tabel WHERE id=$id1 OR id=$id2 OR id=$id3
Avatar billede googolplex Novice
21. august 2003 - 00:51 #14
detox: Smid et svar
Avatar billede detox Nybegynder
21. august 2003 - 00:57 #15
Ok, så. c",]
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