Minulla on edelleen tässä tämä arviotietokantani, jossa on levyarvioita. Nyt pitäisi saada aikaiseksi "Joosef suosittelee," eli
select * from arviot where pisteet >= 5
Hakutuloksia tulee monta ja yksi niistä pitäisi randomilla saada valittua. Ideoita?
Satunnaisluvun arpominen taulun tietueiden lukumäärän ollessa maksimi ei käy, koska pistemäärän 5 tai 6 saaneiden levyjen id-kenttien muodostama skaala ei ole lineaarinen, eikä kata kaikkia tietokannassa olevia levyjä. Lisäksi taulun tietueiden määrä ei ole vakio, vaan kasvaa.
Käviskö:
SELECT * FROM arviot WHERE pisteet >= 5 ORDER BY RAND() LIMIT 0,1 ?
Eikö seuraava käy?
SELECT * FROM arviot WHERE pisteet >=5 ORDER BY RAND() LIMIT 1
Edit: heti ku sitä käy syntaksin tarkistamassa manuaalista, niin eiköhän sitä ole jo myöhässä... :)
Kiitos. Minulla on tässä eräs kirja aiheesta, mutta ei siitä ota erkkikään selvää. Ei sieltä ilmennyt sitäkään, että order by rand() olisi mahdollinen.
Ohjelmointiputka = php for dummies online, eli täydellinen paikka minulle.
Aihe on jo aika vanha, joten et voi enää vastata siihen.