El 16 de julio de 2009 19:09, Emiliano
Horcada<emilianohorcada@stripped> escribió:
> 2009/7/16 Calabaza <calalinux@stripped>
>>
>> El 16 de julio de 2009 13:05, Emiliano
>> Horcada<emilianohorcada@stripped> escribió:
>> > 2009/7/16 Maria Eugenia Ruiz Estopier <estopier@stripped>
>> >
>> >>
>> >> Tengo una duda? el rand para que lo quieres? para el posicionamiento
>> >> aleatorio en la forma en la que lo vas a presentar en tu pagina? y que
>> >> debera ser siempre en diferentes posiciones? por que finalmente los 20
>> >> ultimos siempre van a ser 20 resultados, pero en si cual es la razon
>> >> del
>> >> RAND? por que si es para posicionamiento te puedo facilitar otras
>> >> alternativas.
>> >>
>> >> > Date: Thu, 16 Jul 2009 13:02:34 -0300
>> >> > Subject: Re: Rand por fecha
>> >> > From: anarkae@stripped
>> >> > To: calalinux@stripped
>> >> > CC: mysql-es@stripped
>> >> >
>> >> > si se puede meter un limit en la subquery..
>> >> > podrias hacer esto:
>> >> > SELECT Titulo, Fecha
>> >> > FROM tabla
>> >> > WHERE id IN(select id
>> >> > from tabla
>> >> > order by Fecha desc
>> >> > LIMIT 20)
>> >> > ORDER BY rand();
>> >> >
>> >> > la version que tengo yo de mysql, no me deja...
>> >> > habria que probar..
>> >> >
>> >> >
>> >> >
>> >> > 2009/7/16 Calabaza <calalinux@stripped>:
>> >> > > El 15 de julio de 2009 20:23, Emiliano
>> >> > > Horcada<emilianohorcada@stripped> escribió:
>> >> > >> Tengo en una tabla los campos: Titulo, Fecha. Y necesito
> obtener
>> >> > >> los
>> >> 20
>> >> > >> registros más nuevos, es decir que ORDER BY Fecha
> DESC LIMIT 0, 20
>> >> Pero,
>> >> > >> necesito que estos 20 registros se ordenen aleatoreamente.
> Se
>> >> entiende?.
>> >> > >> Existe una forma de hacer eso con la consulta?.
>> >> > >>
>> >> > >
>> >> > > Prueba esto a ver si te sirve:
>> >> > >
>> >> > > Select * from
>> >> > > (
>> >> > > Select
>> >> > > rand() as aleatorio,
>> >> > > a.Titulo,
>> >> > > a.Fecha
>> >> > > from
>> >> > > tuTabla a
>> >> > > order by a.fecha desc
>> >> > > limit 20
>> >> > > ) as g
>> >> > > order by aleatorio asc;
>> >> > >
>> >> > > Un abrazo,
>> >> > > --
>> >> > > §~^Calabaza^~§ from Villa Elisa, Paraguay
>> >> > > http://es.wikipedia.org/wiki/Top-posting
>> >> > > http://es.wikipedia.org/wiki/Netiquette
>> >> > >
>> >> > > --
>> >> > > Lista de Correos de MySQL
>> >> > > Para el historial de la lista:
> http://lists.mysql.com/mysql-es
>> >> > > Para cancelar inscripción:
>> >> http://lists.mysql.com/mysql-es?unsub=1
>> >> > >
>> >> > >
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> >
>> >> > --
>> >> > Lista de Correos de MySQL
>> >> > Para el historial de la lista: http://lists.mysql.com/mysql-es
>> >> > Para cancelar inscripción:
>> >> http://lists.mysql.com/mysql-es?unsub=1
>> >> >
>> >>
>> >> _________________________________________________________________
>> >> Comparte tu vida en Perfil de Windows Live. Actualízalo ya!
>> >> http://www.actualizatuperfil.com.mx/
>>
>>
>> > En realidad lo quiero para mostrar los mismos 20 de forma aleatoria, no
>> > más
>> > que eso.
>> > (gracias a todos por las soluciones)
>>
>> ¿Has probado lo que envié?
>>
>> --
>> §~^Calabaza^~§ from Villa Elisa, Paraguay
>> http://es.wikipedia.org/wiki/Top-posting
>> http://es.wikipedia.org/wiki/Netiquette
>>
>> --
>> Lista de Correos de MySQL
>> Para el historial de la lista: http://lists.mysql.com/mysql-es
>> Para cancelar inscripción:
>> http://lists.mysql.com/mysql-es?unsub=1
>>
>
>
> Mi versión de mysql no permite LIMIT en subconsultas.
umm, has un
Select version();
y envíanos el resultado, en mi caso sale:
'5.0.51a-24+lenny1'
Mira esto, no sería lo óptimo pero a lo mejor te sirve:
Select * from
(
Select
rand() as aleatorio,
a.Titulo,
a.Fecha
from
tuTabla a
order by a.fecha desc
) as g
order by aleatorio asc
limit 20;
O podrías hacer: una vista con la subconsulta y
luego haces el otro select a la vista...
Prueba y cuéntanos...
--
§~^Calabaza^~§ from Villa Elisa, Paraguay
http://es.wikipedia.org/wiki/Top-posting
http://es.wikipedia.org/wiki/Netiquette