Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/09/2016, 13:18
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: mostrar rango de numeros

Hola roboty:

La idea de tu consulta es correcta, sin embargo, no puedes utilizar el campo "aleatorio" en el where ya que es un campo calculado y por lo tanto "existe" sólo después de que se ejecuta la consulta... Podrías intentarlo de la siguiente manera:

Código MySQL:
Ver original
  1. select aleatorio
  2.   ( select round(rand()*10) as aleatorio ) T
  3. where aleatorio not in ( select numero
  4.                          from registro);

En otras palabras, ejecutar como subconsulta el SELECT para obtener el número aleatorio y después filtrar el valor. El problema con esta consulta es que cuando sea el caso de que el número aleatorio generado exista en la tabla registro, entonces el resultado de la consulta será un vacío. Lo que se me ocurre es que en lugar de hacer esto, hagas un Procedimiento Almacenado con un ciclo, el cual se ejecute "infinitamente" hasta que encuentres un número que te sirva.

Haz la prueba y nos comentas.

Saludos