List:Spanish« Previous MessageNext Message »
From:Fernando del Fresno García Date:July 17 2009 11:59am
Subject:Re: Rand por fecha
View as plain text  
No estoy siguiendo mucho este hilo, pero podría ser una solución
fácil
hacer el SELECT con los 20 primeros registros y recuperarlos en una
estructura (p.ejemplo, como un array) y hacer el random del índice de la
estructura.
> 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
>
> --
> 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
>
>


Thread
Rand por fechaEmiliano Horcada16 Jul
  • Re: Rand por fecha16 minutos16 Jul
    • Re: Rand por fechaEmiliano Horcada16 Jul
      • Re: Rand por fechaGN16 Jul
        • Re: Rand por fechaEmiliano Horcada16 Jul
          • Re: Rand por fechaAnarkae16 Jul
            • Re: Rand por fechaEmiliano Horcada16 Jul
              • RE: Rand por fechaMaria Eugenia Ruiz Estopier16 Jul
        • RE: Rand por fechaThomas Goik - auxion.de18 Jul
    • Re: Rand por fechaMarcos Besteiro López18 Jul
  • Re: Rand por fechaCalabaza16 Jul
    • Re: Rand por fechaAnarkae16 Jul
      • RE: Rand por fechaMaria Eugenia Ruiz Estopier16 Jul
        • Re: Rand por fechaEmiliano Horcada16 Jul
          • Re: Rand por fechaCalabaza16 Jul
            • Re: Rand por fechaEmiliano Horcada17 Jul
              • Re: Rand por fechaCalabaza17 Jul
                • Re: Rand por fechaEmiliano Horcada17 Jul
                • Re: Rand por fechaFernando del Fresno García18 Jul