假设表a有一个字段b,b存的是权重,范围0-100吧,我想随机查一条记录,但是按权重给出数据,该如何写呢
走同样的路,发现不同的人生
select * from a order by b desc
返された結果セットの先頭の重みが高くなりますたとえば
データが少ない場合select *from a order by rand() limit 1
select *from a order by rand() limit 1
データを 1 つだけ取得する場合、どうやって並べ替えるのですか...ランダムに 1 つを選択するだけです。複数のデータを取得する必要がある場合は、1 つの SQL レイヤーで並べ替える必要があります。select * from (select * from a order by rand() limit n) aa order by b desc;
select * from (select * from a order by rand() limit n) aa order by b desc;
select * from a order by b desc
返された結果セットの先頭の重みが高くなります
リーリーたとえば
データが少ない場合
select *from a order by rand() limit 1
データを 1 つだけ取得する場合、どうやって並べ替えるのですか...ランダムに 1 つを選択するだけです。複数のデータを取得する必要がある場合は、1 つの SQL レイヤーで並べ替える必要があります。
select * from (select * from a order by rand() limit n) aa order by b desc;