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

rand() en un order by

Estas en el tema de rand() en un order by en el foro de Bases de Datos General en Foros del Web. Hola, Necesito como dice el titulo insertar un rand() en un order by como segundo argumento, es esto posible? Les muestro donde lo quiero insertar.(No ...
  #1 (permalink)  
Antiguo 25/09/2003, 22:19
Avatar de mapper  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 321
Antigüedad: 21 años, 3 meses
Puntos: 1
Pregunta rand() en un order by

Hola, Necesito como dice el titulo insertar un rand() en un order by como segundo argumento, es esto posible?

Les muestro donde lo quiero insertar.(No modifiquen el sprintf() en la respuesta ya que es indispensable para que ande como lo hace hasta ahora.)

Código PHP:
$query_gpc sprintf("SELECT * FROM intercambio_urls WHERE categoria = '%s' AND validado = 'v'  ORDER BY estrellas desc"$colname_gpc); 
Como veran el codigo trabaja bien ya que no posee errores. pero un error se produce cuando quiero que el segundo argumento sea ( id rand() ) puede ser? osea quiero que en vez de buscar de arriba para abajo hasta encontrar todos lo s registros sino que los busque en un orden aleatorio y los (escupa) entregue ordenados por estrellas desc


Gracias
__________________
-- May The Force Be With You --
  #2 (permalink)  
Antiguo 26/09/2003, 03:19
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 4 meses
Puntos: 17
Código PHP:
<?
$query_gpc 
sprintf("SELECT * FROM intercambio_urls WHERE categoria = '%s' AND validado = 'v'  ORDER BY estrellas desc, RAND()"$colname_gpc);
?>
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 26/09/2003, 15:44
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

La consulta de Cain los devuelve ordenados por estrellas DESC, y en caso de igual valor de estrellas, en orden aleatorio.

No se si es eso lo que neesitas, porque no entiendo lo de "buscar en orden aleatorio".

Al hacer el ORDER BY ...., RAND(), lo que realmente pasa es que MySQL crea una nueva columna con un valor aleatorio para cada resgistro. Es tecnicamente igual que hacer:

SELECT ..., RAND() as aleatorio FROM ... WHERE ... ORDER BY ..., aleatorio

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 27/09/2003, 18:25
Avatar de mapper  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 321
Antigüedad: 21 años, 3 meses
Puntos: 1
Hola, lo que yo quiero digamos es que si tengo 150 registros en la tabla que coinciden, y quiero imprimir 50 no sean los primeros 50, y que esten ordenados por estrellas, se entiende?
__________________
-- May The Force Be With You --
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 02:29.