Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Hacer un random en Determinado campo

Estas en el tema de Hacer un random en Determinado campo en el foro de Mysql en Foros del Web. Hola gentes, tengo una "simple" duda, tengo 2 tablas categorias y productos la consigna es listar todas las categorias con una foto del producto obviamente ...
  #1 (permalink)  
Antiguo 27/10/2008, 05:15
Avatar de AriX  
Fecha de Ingreso: marzo-2006
Mensajes: 9
Antigüedad: 18 años
Puntos: 0
Hacer un random en Determinado campo

Hola gentes, tengo una "simple" duda,

tengo 2 tablas

categorias y productos

la consigna es listar todas las categorias con una foto del producto

obviamente la foto del producto se encuentra en la tabla productos

como ustedes saben puede existir 1 o mas productos por categoría.

hasta el momento realize esta consulta:

Código PHP:
SELECT
categoria
.id_cate,
categoria.titu_cate,
productos.imagen_prod,
categoria.desc_cate

FROM
categoria
Inner Join productos ON 
(categoria.id_cate productos.id_cate)

WHERE
categoria
.publi_cate =  '1'

GROUP BY
categoria
.id_cate 
con eso logro que me devuelva una fila por categoria, pero en cuanto al campo "imagen_prod" solo me devuelve el primero, si uso la funcion MAX() me devolvera el ultimo, pero:

¿como hago para que me devuelva un aleatorio del imagen_prod que le corresponda a la categoria de la fila?

muchas gracias!
  #2 (permalink)  
Antiguo 28/10/2008, 04:52
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Hacer un random en Determinado campo

Mírate la función RAND del MySQL.
Ahí hay un ejemplo para generar números enteros y no flotantes.
  #3 (permalink)  
Antiguo 28/10/2008, 06:29
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Hacer un random en Determinado campo

Una propuesta con ORDER BY RAND(). Ya sabemos que este aleatorio no es la panacea, pero ahí va la idea. Tendrás que adaptar los nombres de los campos a los tuyos.

SELECT t1.categoria, pr.imagen
FROM productos pr
INNER JOIN (

SELECT p.id AS id, c.categoria AS categoria
FROM categorias c
INNER JOIN productos p ON c.id = p.categoria
ORDER BY rand( )
)t1 ON pr.id = t1.id
GROUP BY t1.categoria
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:08.