sql >> Database teknologi >  >> RDS >> Mysql

Problemer med at vælge en enkelt tilfældig række fra MySQL-tabellen

Din kode returnerer flere rækker, fordi rand() vurderes på hver række. Så du har ændringen af ​​flere kampe. Og en chance for slet ingen kampe.

Du kan bruge din idé, men prøv den på denne måde:

select relusers.uname
from relusers cross join
     (selext @rand := rand()) const
where relusers.users_id = floor(@rand*46+1);

Dette genererer kun én tilfældig værdi og dermed kun én række. Men med kun 46 rækker er order by metoden skal fungere godt nok:

select relusers.uname
from relusers
order by rand()
limit 1;


  1. Hvordan indstilles forespørgselsparametre i MySQL Query Browser?

  2. hvordan bruger man et like med en join i sql?

  3. Hvordan gemmer man en procentværdi?

  4. Konverter hex i tekstrepræsentation til decimaltal