Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/12/2008, 14:11
jurena
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.