Ir al contenido


Foto

Registros Aleatorios


  • Por favor identifícate para responder
4 respuestas en este tema

#1 brosso

brosso

    Member

  • Miembros
  • PipPip
  • 27 mensajes

Escrito 22 marzo 2013 - 11:11

Hola Amigos del Foro aca con una consulta
tengo que seleccionar 20 registros aleatorios de una tabla
y que al menos un registro especifico este siempre presente en la consulta es decir

fabiana
nathaly
hernan
jose
sandra
**************************
fabian
nathaly
hernan
victor
jorge
*************************
omar
nathaly
carlos
antonio
diego



es decir q un registro siempre este presente al realizar la consulta ç


DE ANTEMANO GRACIAS POR LA AYUDA!!!!!!!!!!
  • 0

#2 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 23 marzo 2013 - 09:43

Saludos.

Una idea, pudiera realizar un UNION el primer select traes el registro fijo y en el segundo select traer los 19 registros aleatorios.
  • 0

#3 Delphius

Delphius

    Advanced Member

  • Moderador
  • PipPipPip
  • 6.295 mensajes
  • LocationArgentina

Escrito 23 marzo 2013 - 11:01

La idea de Rolphy puede funcionar.
El asunto pasaría por elegir los 19 registros al azar. Creo que ningún motor tiene una función Random.

Mi propuesta es que por vía sistema se elijan 19 números gracias a Random/RandomRange, que correspondan al rango de IDs (válidas por supuesto) que tiene al momento dicha tabla. Con estos 19 números se forma una cadena que tenga la forma:


delphi
  1. '(NroFijo, Nro1, ..., Nro19)'



¿Porqué o para qué? Muy fácil: mi objetivo es lanzar una consulta select-in:

SELECT <tus-campos>
FROM <tu-tabla>
WHERE ID IN (NroFijo, Nro1, .... Nro19)
[ORDER BY ....]


Más o menos por allí va la idea.

Saludos,
  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 23 marzo 2013 - 11:17

MySQL sí tiene una función para ello, es el RAND(), ejemplo:

Select nombre from mi Tabla where Campo = 'Algo' ORDER BY RAND() LIMIT 19


Saludos.
  • 0

#5 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 23 marzo 2013 - 12:34

MySQL sí tiene una función para ello, es el RAND(), ejemplo:

Select nombre from mi Tabla where Campo = 'Algo' ORDER BY RAND() LIMIT 19


Saludos.


Saludos.

Esa sería una de las partes del UNION que propongo, lo que no sabía como se llama la función en MySQL.

Yo haría algo como:
SELECT CAMPO FROM TABLA WHERE CAMPO = 'nathaly'
UNION
SELECT CAMPO FROM TABLA WHERE CAMPO <> 'nathaly'ORDER BY RAND() LIMIT 19

  • 0