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

¿Que hace esta consulta?

Estas en el tema de ¿Que hace esta consulta? en el foro de Mysql en Foros del Web. Hola a todos estoy continuando un proyecto de alguien y pues a ver le explico lo que se trata es de una web de propiedades ...
  #1 (permalink)  
Antiguo 10/12/2008, 09:05
 
Fecha de Ingreso: enero-2008
Mensajes: 60
Antigüedad: 16 años, 3 meses
Puntos: 0
¿Que hace esta consulta?

Hola a todos estoy continuando un proyecto de alguien y pues a ver le explico lo que se trata es de una web de propiedades depende del tipo de propiedad y de la zona se asigna un codigo por ejemplo el codigo 'AP02100'
Seria
AP = apartamento
02 = zona
100 = Consecutivo

ahora la persona que hizo este sistema utiliza esta consulta para identificar el consecutivo
Código PHP:
SELECT MAXCAST(SUBSTRING(codigo,5) AS UNSIGNED ) ) max_cod FROM propiedades p where tipo ='AP' and zona ='02' 
pero no entiendo como funciona.

cualquier aporte sera bien recibido

Muchas Gracias
  #2 (permalink)  
Antiguo 10/12/2008, 14:11
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: ¿Que hace esta consulta?

Cita:
Iniciado por Andres_hlan Ver Mensaje
Hola a todos estoy continuando un proyecto de alguien y pues a ver le explico lo que se trata es de una web de propiedades depende del tipo de propiedad y de la zona se asigna un codigo por ejemplo el codigo 'AP02100'
Seria
AP = apartamento
02 = zona
100 = Consecutivo

ahora la persona que hizo este sistema utiliza esta consulta para identificar el consecutivo
Código PHP:
SELECT MAXCAST(SUBSTRING(codigo,5) AS UNSIGNED ) ) max_cod FROM propiedades p where tipo ='AP' and zona ='02' 
pero no entiendo como funciona.

cualquier aporte sera bien recibido

Muchas Gracias
AP02100 es un ejemplo de formato de los códigos. Si escribes
SELECT MAX( CAST(SUBSTRING(codigo,5) AS UNSIGNED ) ) max_cod FROM propiedades p where tipo ='AP' and zona ='02'

estás buscando el mayor valor de un código por lo que se refiere a sus elementos desde el 5 carácter en adelante, es decir, desde el 1 en tu ejemplo, a saber el 100. Pero para ordenarlo y sacar el máximo necesitas hacer una conversión a numérico (no olvides que lo has guardado como cadena de texto); de ahí la necesidad de hacer el cast as unsigned, la conversión a número. En realidad, buscas entre los códigos cuyo tipo sea 'AP' y cuya zona '02' el valor máximo del consecutivo, y para recuperarlo lo llamas max_cod mediante un alias.
  #3 (permalink)  
Antiguo 10/12/2008, 15:16
 
Fecha de Ingreso: enero-2008
Mensajes: 60
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: ¿Que hace esta consulta?

Perfecto Muchas Gracias por tu respuesta, estaba confundidisimo pero ya no.... tengo que estudiar sql mas profundamente
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 19:11.