Select campo cercano superior e inferior
Estoy haciendo una página web en la que se pueden consultar las tiendas de una determinada empresa.
En la tabla, uno de los campos es el código postal, y en la página de consulta de tiendas, he creado un campo de texto de formulario para que el visitante pueda introducir SU código postal.
Al hacerlo y pinchar en "buscar", el programa podría buscar dicho código para las tiendas existentes, pero como es muy posible que no exista ninguna tienda con dicho CP, lo bueno sería mostrarle las más cercanas.
Como los códigos postales de las ciudades están asignados consecutivamente por proximidad (más o menos), necesitaría buscar las tiendas con CP cercano al introducido. Por ejemplo, buscar las 2 tiendas con código superior al indicado y las 2 con el código inferior.
Es decir, que si introducen el código 48665 y en la base de datos hay tiendas con los códigos 47600, 47887, 48660, 48664, 49900 y 52012, el programa debería devolver como tiendas más cercanas las 2 con el código inferior más próximo (48660, 48664) y las 2 con el código superior más próximo (49900, 52012).
Si no fuese posible conseguir las 2 por encima y por debajo, me conformaría con la más próxima por encima y debajo ;-)
El caso es que no se me ocurre como plantear la sentencia select de SQL para obtenerlo.
En la tabla, uno de los campos es el código postal, y en la página de consulta de tiendas, he creado un campo de texto de formulario para que el visitante pueda introducir SU código postal.
Al hacerlo y pinchar en "buscar", el programa podría buscar dicho código para las tiendas existentes, pero como es muy posible que no exista ninguna tienda con dicho CP, lo bueno sería mostrarle las más cercanas.
Como los códigos postales de las ciudades están asignados consecutivamente por proximidad (más o menos), necesitaría buscar las tiendas con CP cercano al introducido. Por ejemplo, buscar las 2 tiendas con código superior al indicado y las 2 con el código inferior.
Es decir, que si introducen el código 48665 y en la base de datos hay tiendas con los códigos 47600, 47887, 48660, 48664, 49900 y 52012, el programa debería devolver como tiendas más cercanas las 2 con el código inferior más próximo (48660, 48664) y las 2 con el código superior más próximo (49900, 52012).
Si no fuese posible conseguir las 2 por encima y por debajo, me conformaría con la más próxima por encima y debajo ;-)
El caso es que no se me ocurre como plantear la sentencia select de SQL para obtenerlo.
1 Respuesta
Respuesta de yeyorm
1