2012-06-19 11 views
6

Ésta es mi consulta SQL:SQL cuestión arreglo de resultados de consulta

select name,description 
from wp_widget_custom 
where name in ('hemel-hempstead','maidenhead', 
    'guildford','bromley','east-london','hertfordshire','billericay','surrey') 

El resultado que estoy recibiendo es en esta forma:

name   description 
hemel-hempstead Loreum ipsim 
east-london  Loreum ipsim 
bromley   Loreum ipsim BROMLEY 
billericay  Loreum ipsim 
maidenhead  Loreum ipsim maidenhead 
hertfordshire Loreum ipsim HERTFORDSHIRE 
guildford  loreum ipsum Guildford 
surrey   loreum ipsum surrey 

Quiero el resultado a ser fijado de la forma en que se aprobó en la consulta:

hemel-hempstead ,maidenhead',guildford,bromley,east-london...... 

Se agradece la ayuda, gracias.

Respuesta

6

fin por sector:

select name, description 
from wp_widget_custom 
where name in ('hemel-hempstead','maidenhead','guildford','bromley','east-london','hertfordshire','billericay','surrey') 
order by field(name, 'hemel-hempstead','maidenhead','guildford','bromley','east-london','hertfordshire','billericay','surrey') 
+0

+1 más fácil de generar que mi respuesta :) – Andomar

+0

tremendo que nunca supe podemos organizar artículos como que gracias –

+0

Niza, aprendidas algo nuevo :) –

1

Se puede usar un filtrado inner join en lugar de una cláusula where ... in. Eso le permite especificar un orden, que luego se puede hacer referencia en la cláusula order by:

select wc.name 
,  wc.description 
from wp_widget_custom wc 
join (
     select 1 as nr, 'hemel-hempstead' as name 
     union all select 2, 'maidenhead' 
     union all select 3, 'guildford' 
     union all select 4, 'bromley' 
     union all select 5, 'east-london' 
     union all select 6, 'hertfordshire' 
     union all select 7, 'billericay' 
     union all select 8, 'surrey' 
     ) as filter 
on  filter.name = wc.name 
order by 
     filter.nr 
Cuestiones relacionadas