Tengo una tabla MySQL con un montón de entradas y una columna llamada "Multiplicador". El valor predeterminado (y el más común) para esta columna es 0, pero podría ser cualquier número.MySQL: Seleccione entrada aleatoria, pero peso hacia ciertas entradas
Lo que tengo que hacer es seleccionar una sola entrada de esa tabla al azar. Sin embargo, las filas se ponderan según el número en la columna "Multiplicador". Un valor de 0 significa que no está ponderado en absoluto. Un valor de 1 significa que se pondera el doble, como si la entrada estuviera en la tabla dos veces. Un valor de 2 significa que se pondera tres veces más, como si la entrada estuviera en la tabla tres veces.
Estoy tratando de modificar lo que mis desarrolladores ya me han dado, así que lo siento si la configuración no tiene mucho sentido. Probablemente podría cambiarlo pero quiero mantener la mayor cantidad posible de la configuración de la tabla existente.
He estado tratando de encontrar la manera de hacer esto con SELECT y RAND(), pero no sé cómo hacer la ponderación. ¿Es posible?
"Como si la entrada estuviera en la mesa dos veces" suena como un buen punto de partida. Repita cada fila 'Multiplicador' veces, y haga la selección al azar como lo haría normalmente. – bzlm
Cuando dices "repetir cada fila", ¿qué quieres decir? – John