Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/01/2014, 06:27
Oracles
 
Fecha de Ingreso: septiembre-2008
Ubicación: Valencia
Mensajes: 160
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Consultas "aleatorias"

Lógica la tendrá o no dependiendo de para lo que lo uses.

Supongo que quieres extraer todos los datos de una misma tabla.

Lo que deberás hacer es un seguido de sentencias SQL si quieres sacar el número aleatorio dentro a la vez y no es un valor que se pasa desde otra aplicación. Luego sería ahcer que te devuelva todos los valores iguales y mayores a esa ID y unes la consulta con un UNION a otra que te devuelva los menores.

Para sacar un valor aleatorio para una consulta debes usar CAST(min_id + RAND() * max_id AS UNSIGNED) creando una variable temporal que usar después.

Aquí te dejo el código que resolvería la consulta. Los valores máximos y mínimos si varían seŕia cosa de hacer previamente consultas para que devuelvan el valor máximo y mínimo, y los guardas en otras variables, eso o haces unas subconsultas, yo te lo voy a poner suponiendo que siempre serán constantes.

Código:
SET @nAleatorio = CAST(valor_minimo + RAND()*(valor_maximo - valor_minimo) AS UNSIGNED);

(SELECT * FROM tu_tabla WHERE ID >= @nAleatorio) UNION (SELECT * FROM tu_tabla WHERE ID < @nAleatorio) ;
Espero que esto te sirva para algo, un saludo.
__________________
Siempre inmerso en nuevos proyectos.

Cuando estoy activo puedes verme en //LiveCoding

Última edición por Oracles; 29/01/2014 a las 07:22