Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie füge ich einer MySQL-Tabelle Gewichte hinzu und wähle danach zufällige Werte aus?

Ich habe diesen netten kleinen Algorithmus in QuodLibet. Sie könnten es wahrscheinlich in prozedurales SQL übersetzen.

function WeightedShuffle(list of items with weights):
  max_score ← the sum of every item’s weight
  choice ← random number in the range [0, max_score)
  current ← 0
  for each item (i, weight) in items:  
    current ← current + weight  
    if current ≥ choice or i is the last item:  
      return item i