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

Query dificil

Estas en el tema de Query dificil en el foro de Bases de Datos General en Foros del Web. Ok, necesito saber si esto es posible y de serlo como se escribe: Imaginate esto, tenemos un listado de registros ORDER BY nombre ASC. Dentro ...
  #1 (permalink)  
Antiguo 11/08/2005, 08:42
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 20 años
Puntos: 1
Query dificil

Ok, necesito saber si esto es posible y de serlo como se escribe:

Imaginate esto, tenemos un listado de registros ORDER BY nombre ASC.
Dentro de ese listado tenes dos registros en particulas, uno con id 48 y otro con id 47, vos sabes que existen por que los viste en la base de datos.
Y lo que queres es que al listar ese query te muestre primero esos dos registros y luego los demás, aunque el 48 y 47 empiezen con Z no importa.

Se puede hacer esto con un query de SQL directamente?.
__________________
:serio: :adios:
  #2 (permalink)  
Antiguo 11/08/2005, 10:46
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 meses
Puntos: 0
No lo he probado pero prueba así:

SELECT * FROM tabla WHERE id_campo=x and id_campo=y
UNION
SELECT * FROM TABLA ORDER BY nombre

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)

Última edición por DjNelson; 12/08/2005 a las 11:36
  #3 (permalink)  
Antiguo 11/08/2005, 11:06
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 20 años
Puntos: 1
Gracias maestro.
__________________
:serio: :adios:
  #4 (permalink)  
Antiguo 11/08/2005, 11:44
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 20 años
Puntos: 1
Ok, pero no funcionó, no por que tu ejemplo esté mal, sino por que mi query es un tanto más complejo.
Lo copio.

SELECT if(orden>0,0,1) as orden1,propiedades.*,CONCAT(IF(ISNULL(zonas.nombre ),'',CONCAT('',zonas.nombre)),IF(ISNULL(ciudades.n ombre),'',CONCAT(' - ',ciudades.nombre))) as location, ciudades.nombre as ciudad_nom FROM propiedades left join zonas on propiedades.zona=zonas.id left join ciudades on propiedades.ciudad=ciudades.id WHERE confirmada=1 and propiedades.zona='15' AND propiedades.habilitada='SI' ORDER BY ciudades.nombre ASC

y lo que quiero hacer es mostrar los registros 47 y 48 de la tabla PROPIEDADES y ordenarlos por nombre de la tabla CIUDAD.

Se entiende?
__________________
:serio: :adios:
  #5 (permalink)  
Antiguo 12/08/2005, 11:41
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 meses
Puntos: 0
Bueno, el uso de UNION es bastante simple, simplemente tienes que mostrar el mismo número de campos (a ser posible del mismo tipo)...

Puedes hacer algo así:

SELECT if(orden>0,0,1) as orden1,propiedades.*,CONCAT(IF(ISNULL(zonas.nombre ),'',CONCAT('',zonas.nombre)),IF(ISNULL(ciudades.n ombre),'',CONCAT(' - ',ciudades.nombre))) as location, ciudades.nombre as ciudad_nom FROM propiedades left join zonas on propiedades.zona=zonas.id left join ciudades on propiedades.ciudad=ciudades.id WHERE confirmada=1 and propiedades.zona='15' AND propiedades.habilitada='SI' and id_campo=47 and id_campo = 48

UNION

SELECT if(orden>0,0,1) as orden1,propiedades.*,CONCAT(IF(ISNULL(zonas.nombre ),'',CONCAT('',zonas.nombre)),IF(ISNULL(ciudades.n ombre),'',CONCAT(' - ',ciudades.nombre))) as location, ciudades.nombre as ciudad_nom FROM propiedades left join zonas on propiedades.zona=zonas.id left join ciudades on propiedades.ciudad=ciudades.id WHERE confirmada=1 and propiedades.zona='15' AND propiedades.habilitada='SI' ORDER BY ciudades.nombre ASC

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #6 (permalink)  
Antiguo 16/08/2005, 06:52
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 20 años
Puntos: 1
Aunque modifiqué los campos para los nombres correctos, sigue sin funcionar.
Me tiene extrañado esto.
Alguien sabe algo?
__________________
:serio: :adios:
  #7 (permalink)  
Antiguo 16/08/2005, 15:57
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Movido a BD desde PHP
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 13:56.