假设表a有一个字段b,b存的是权重,范围0-100吧,我想随机查一条记录,但是按权重给出数据,该如何写呢
走同样的路,发现不同的人生
b 설명으로 주문에서 *를 선택하세요
반환된 결과 집합 앞부분의 가중치가 더 높습니다예:
------------ |b |나머지 필드| --------------- |100|xxxxxx| --------------- |97| --------------- |6 | --------------- |5 |xxxxxx| -------------
데이터가 많지 않은 경우*주문에서 rand() 제한 1을 선택
*주문에서 rand() 제한 1을 선택
데이터를 한 개만 가져오면 어떻게 정렬할 수 있나요? 무작위로 한 개만 선택하면 끝입니다. 위층에서는 여러 개의 데이터를 정렬해야 하기 때문에 SQL의 한 레이어만 사용하면 됩니다. .select * from (rand () 제한 n으로 주문에서 * 선택) aa b desc로 주문;
select * from (rand () 제한 n으로 주문에서 * 선택) aa b desc로 주문;
b 설명으로 주문에서 *를 선택하세요
반환된 결과 집합 앞부분의 가중치가 더 높습니다
예:
데이터가 많지 않은 경우
*주문에서 rand() 제한 1을 선택
데이터를 한 개만 가져오면 어떻게 정렬할 수 있나요? 무작위로 한 개만 선택하면 끝입니다. 위층에서는 여러 개의 데이터를 정렬해야 하기 때문에 SQL의 한 레이어만 사용하면 됩니다. .
select * from (rand () 제한 n으로 주문에서 * 선택) aa b desc로 주문;