Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

वजन को ध्यान में रखते हुए बेतरतीब ढंग से एक पंक्ति का चयन कैसे करें?

मुझे लगता है कि सबसे आसान वास्तव में भारित जलाशय के नमूने का उपयोग करना है:

SELECT
  id,
  -LOG(RAND()) / weight AS priority
FROM
  your_table
ORDER BY priority
LIMIT 1;

यह एक बढ़िया तरीका है जो आपको N तत्वों में से M चुनने देता है जहाँ प्रत्येक तत्व के लिए चुने जाने की संभावना उसके वजन के समानुपाती होती है। यह ठीक उसी तरह काम करता है जब आप केवल एक तत्व चाहते हैं। विधि यह लेख . ध्यान दें कि वे POW(RAND(), 1/weight) का सबसे बड़ा मान चुनते हैं, जो -LOG(RAND()) / weight के सबसे छोटे मानों को चुनने के बराबर है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पीएचपी mysqli बाहर पैरामीटर के साथ संग्रहीत कार्यविधि के लिए तैयार बयान

  2. MySQL सेलेक्ट काउंटर, ग्रुप बाय

  3. मैं PHP में MySQL तालिका संरचना कैसे प्राप्त करूं? प्लस सभी तालिकाओं की एक सूची?

  4. MySQL के INTERVAL और UTC_TIMESTAMP के sqlite समकक्ष क्या हैं?

  5. सीआई - डेटाबेस त्रुटि दिखाएं या विफल