>  기사  >  백엔드 개발  >  '승수' 열을 사용하여 MySQL에서 가중치가 적용된 무작위 선택을 구현하고 0으로 나누는 오류를 방지하려면 어떻게 해야 합니까?

'승수' 열을 사용하여 MySQL에서 가중치가 적용된 무작위 선택을 구현하고 0으로 나누는 오류를 방지하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-28 00:22:10365검색

How can I implement weighted random selection in MySQL with a

MySQL: 승수를 사용한 가중치 무작위 선택

사용자가 MySQL 테이블에서 무작위 항목을 선택하는 경우 가중치를 기반으로 해야 하는 시나리오를 접했습니다. "승수" 열에 있습니다. 일반적인 접근 방식에는 SELECT 및 RAND()를 활용하는 것이 포함되지만 가중치 측면을 어떻게 달성할 것인가에 대한 의문이 생겼습니다.

이를 해결하기 위해 이전 솔루션에서는 -LOG(1.0 - RAND() 값을 기준으로 정렬하는 것을 제안했습니다. )를 승수로 나눈 값입니다. 이 접근 방식은 정확한 가중치를 성공적으로 생성했습니다. 그러나 잠재적인 단점이 나타났습니다. 옵션을 비활성화하기 위해 승수를 0으로 설정하면 0으로 나누어지게 됩니다.

대신 WHERE 승수 > 0 조건을 고려할 수 있습니다. 이렇게 하면 비활성화된 항목이 무작위 선택 프로세스에 포함되지 않습니다.

위 내용은 '승수' 열을 사용하여 MySQL에서 가중치가 적용된 무작위 선택을 구현하고 0으로 나누는 오류를 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.