/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
MySQL: Hente en tilfældig række
Fra : Niels Andersen


Dato : 27-08-01 16:48

Dette må være noget der bliver spurgt om tit, men jeg synes ikke jeg kan
finde et brugbart svar nogen steder.

Jeg skal bruge én tilfældig række fra en tabel. Man kunne selvfølgelig bruge
"ORDER BY RAND() LIMIT 1", men det virker jo først fra version 3.23. Det er
så vidt jeg ved en "unstable" version, så det kan vi altså ikke rigtigt
bruge til noget før version 3.24 er kommet.

Men hvad kan jeg gøre indtil da?

"SELECT felt1,felt2,RAND() FROM tabel AS rand ORDER BY rand LIMIT 1" giver
ikke det forventede resultat, det kommer nemlig i samme rækkefølge hver
gang. Og det enda vist i samme rækkefølge, som hvis der ikke var en "ORDER
BY". Øvs...

Nogen ideer?

--
Mvh.

Niels Andersen



 
 
Troels Arvin (27-08-2001)
Kommentar
Fra : Troels Arvin


Dato : 27-08-01 19:21

On Mon, 27 Aug 2001 17:47:59 +0200, "Niels Andersen"
<niels-usenet@myplace.dk> wrote:

> det virker jo først fra version
> 3.23. Det er så vidt jeg ved en "unstable" version, så det kan vi altså
> ikke rigtigt bruge til noget før version 3.24 er kommet.

3.23 generationen er MySQL er for længst erklæret stabil.

--
Greetings from Troels Arvin, Copenhagen, Denmark

Niels Andersen (27-08-2001)
Kommentar
Fra : Niels Andersen


Dato : 27-08-01 20:27

"Troels Arvin" <troels@arvin.dk> wrote in message
news:9me37h$pd1$1@sunsite.dk...
> > det virker jo først fra version
> > 3.23. Det er så vidt jeg ved en "unstable" version, så det kan vi altså
> > ikke rigtigt bruge til noget før version 3.24 er kommet.
>
> 3.23 generationen er MySQL er for længst erklæret stabil.

Så er det bare mig, der er bagud. :)

Troede egenlig at når anden "del" (her 23) er ulige, så er det en unstable
version, som det jo plejer at være. :)

Tak, så må jeg hellere opgradere. :)

--
Mvh.

Niels Andersen



Mads Lie Jensen (27-08-2001)
Kommentar
Fra : Mads Lie Jensen


Dato : 27-08-01 20:28

On Mon, 27 Aug 2001 17:47:59 +0200, "Niels Andersen"
<niels-usenet@myplace.dk> wrote:

>Jeg skal bruge én tilfældig række fra en tabel. Man kunne selvfølgelig bruge
>"ORDER BY RAND() LIMIT 1", men det virker jo først fra version 3.23. Det er
>så vidt jeg ved en "unstable" version, så det kan vi altså ikke rigtigt
>bruge til noget før version 3.24 er kommet.

3.23 er blevet til en stable release for flere måneder siden. (Den
bruger ikke den der standard linux-ting med at ulige numre er unstable
og lige numre er stable).
Desuden kommer der vist slet ikke en 3.24, de går til v4.0

>Men hvad kan jeg gøre indtil da?
>
>"SELECT felt1,felt2,RAND() FROM tabel AS rand ORDER BY rand LIMIT 1" giver
>ikke det forventede resultat, det kommer nemlig i samme rækkefølge hver
>gang. Og det enda vist i samme rækkefølge, som hvis der ikke var en "ORDER
>BY". Øvs...

Du kan ikke sortere på et tablenavn... 'AS rand' skal nok flyttes hen
til efter RAND() for at give den ønskede effekt. Om det så virker skal
jeg lade være usagt...

--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk

Directory Opus - nu også til windows - http://www.gpsoft.com.au

Niels Andersen (27-08-2001)
Kommentar
Fra : Niels Andersen


Dato : 27-08-01 20:34

"Mads Lie Jensen" <mads@gartneriet.dk> wrote in message
news:ok7lot41prk5d8g2ep93sivcnahiagd2ti@4ax.com...
> >"SELECT felt1,felt2,RAND() FROM tabel AS rand ORDER BY rand LIMIT 1"
giver
> >ikke det forventede resultat, det kommer nemlig i samme rækkefølge hver
> >gang. Og det enda vist i samme rækkefølge, som hvis der ikke var en
"ORDER
> >BY". Øvs...
>
> Du kan ikke sortere på et tablenavn... 'AS rand' skal nok flyttes hen
> til efter RAND() for at give den ønskede effekt. Om det så virker skal
> jeg lade være usagt...

Min fejl, da jeg var færdig med indlægget skrev jeg pludselig "FROM tabel"
midt i det hele, og ramte forkert. :)
Jeg skrev det korrekt da jeg prøvede det, og det gav den beskrevne effekt.

Men jeg takker for informationen om MySQL-versioner, jeg opgraderer da bare.
:)

--
Mvh.

Niels Andersen



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste