Comunidad de diseño web y desarrollo en internet online

Sentencia SQL muy complicada, Orden random y alfabetico??

Citar            
MensajeEscrito el 25 May 2009 09:12 pm
Hola como estan?.. bueno la verdad que me esta costando una sentencia SQl para MySql a ver si se puede hacer en una sola consulta..

Necesito que se me listen varios valores Limitados de una tabla, en forma random, ordenados alfabéticamente y que siempre incluya un valor por defecto.. me explico mejor..

Tengo una tabla ejemplo nombres.. id,nombres

Código :

1 Roberto
2 Armando
3 Juanito
4 Alberto
5 Marianela
6 Leando
7 Julio


bien lo que necesito es hacer una sentencia SQL que me devuelva nada mas 4 valores en forma random, ordenados
por nombre y que siempre incluya el id 4.

me tendria que dar resultados iguales a este ejemplo:

4 Alberto
2 Armando
3 Juanito
6 Leandro

siempre trayendo me el id 4 y lo demas en Random, pero ordenados Alfabéticamente..

Como se hace ??? :cry:

Por phoxer

Claber

827 de clabLevel

4 tutoriales

Genero:Masculino  

Ing en Sistemas

firefox
Citar            
MensajeEscrito el 25 May 2009 10:07 pm
yo utilizaria un union para sacar el primero y el resto le haria un order by por nombre seria algo como


(select id,nombre from nombres where id=4)
union
(select id,nombre from nombres order by rand() desc)

creo que de esa forma podria funcionar prueba a ver si te sale algo

HA union es soportado por mysql desde las versiones 5 en adelante saludos

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 25 May 2009 11:36 pm
Hola Talcual, Gracias no sabia que se podía hacer uniones. jaja.. lo unico que falta es que ese resultado se pueda Ordenar alfabeticamente por nombre, pero como esta ordenado por RAND() no me deja..

si le pongo (order by rand(),titulo desc) me ignora el titulo... :s

Por phoxer

Claber

827 de clabLevel

4 tutoriales

Genero:Masculino  

Ing en Sistemas

firefox
Citar            
MensajeEscrito el 26 May 2009 12:00 am
Gracias talcual, lo que me pasaste esta perfecto, y el orden lo hice al final desde ActionScript 3 :)

Por phoxer

Claber

827 de clabLevel

4 tutoriales

Genero:Masculino  

Ing en Sistemas

firefox
Citar            
MensajeEscrito el 26 May 2009 12:20 am
Eso jodería mucho al ActionScript, simplemente esto:

SELECT
*
FROM (
(select id,nombre from nombres where id=4)
union
(select id,nombre from nombres order by rand() desc)
) as super_dano_tabla
ORDER BY super_dano_tabla.nombre ASC

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 26 May 2009 01:20 am

Dano escribió:


SELECT
*
FROM (
(select id,nombre from nombres where id=4)
union
(select id,nombre from nombres order by rand() desc)
) as super_dano_tabla
ORDER BY super_dano_tabla.nombre ASC


Excelente Dano muchísimas gracias.. :D

Por phoxer

Claber

827 de clabLevel

4 tutoriales

Genero:Masculino  

Ing en Sistemas

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.