"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo generar valores aleatorios en el rango en MySQL?

¿Cómo generar valores aleatorios en el rango en MySQL?

Publicado el 2025-04-12
Navegar:822

How to Generate Random Values Within a Range in MySQL?

obteniendo un valor aleatorio dentro de un rango en mysql

introducción

Cuando se trabaja con mysql, puede haber casos en los que necesita generar un valor aleatorio que cae dentro de un rango especificado. Si bien la función rand () existe, no cumple con este requisito. Este artículo profundiza en el mejor enfoque para lograr esto en mysql.

solución:

el método óptimo en mysql para generar un valor aleatorio dentro de un rango especificado es:

[&] ronda ((rand () * (max-min)) min)
ROUND((RAND() * (max-min)) min)
  • max : valor máximo del rango deseado.
  • min : valor mínimo del rango deseado.
  • esta fórmula multiplica rand () por la diferencia entre max y min, agregando el resultado. Round () se aplica para obtener un valor entero.
  • La comparación con la implementación de php:
  • El equivalente de php de la solución mysql es:

rand ($ min, $ max)

[&] [&] sin embargo, los compartimos han demostrado que la solución mysql es un mysql. de valores. La elección entre PHP y MySQL depende del número de filas que se procesan y si solo se necesita el valor aleatorio o se devolverán las columnas adicionales.

de consulta de ejemplo

rand($min, $max)
select Round ((Rand () * (200-10)) 10) 10) `foo`

Addendum: Performance Comparison

para ilustrar más a fondo las diferencias de rendimiento, el siguiente script php se ejecutó:

SELECT ROUND((RAND() * (200-10)) 10) AS `foo`
Los resultados muestran que MySQL es más rápido para generar valores aleatorios si solo se necesita el valor aleatorio, pero más lento si se devuelven columnas adicionales.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3