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

busqueda por partes del contenido de un campo Código Postal

Estas en el tema de busqueda por partes del contenido de un campo Código Postal en el foro de Mysql en Foros del Web. Buenas tardes a todos, Necesito hacer una consulta a la BDD por el campo Código Postal. Lo que quieren es que haya 5 campos input ...
  #1 (permalink)  
Antiguo 16/01/2009, 08:11
 
Fecha de Ingreso: octubre-2007
Mensajes: 130
Antigüedad: 16 años, 6 meses
Puntos: 2
busqueda por partes del contenido de un campo Código Postal

Buenas tardes a todos,

Necesito hacer una consulta a la BDD por el campo Código Postal. Lo que quieren es que haya 5 campos input donde metan por ejemplo: campo1=2 y la consulta devuelva todos los Códigos Postales que comiencen por 2, no que contengan el 2, que es como normalmente funciona la consulta.... ¿a alguien se le ocurre alguna manera de hacerlo?

Gracias!!!
  #2 (permalink)  
Antiguo 16/01/2009, 08:38
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: busqueda por partes del contenido de un campo Código Postal

Muy buenas auri501!

Si te he entendido bien la pregunta creo que sería algo así.

select codigo_postal from tabla where codigo_postal like "2%";

Siendo dos el valor que obtienes del input claro.

No sé si es eso a lo que te refieres, si no es ya lo siento.

Ya me contarás!
saludos!
  #3 (permalink)  
Antiguo 16/01/2009, 09:05
 
Fecha de Ingreso: octubre-2007
Mensajes: 130
Antigüedad: 16 años, 6 meses
Puntos: 2
Respuesta: busqueda por partes del contenido de un campo Código Postal

Gracias por tu respuesta kurtinaitis!
Es genial para resolver el primer campo! pero para el resto?? supongo en la consulta puede que inserten la búsqueda por el primer número del codigo postal, o por el segundo, o por todos.... no se si me explico bien.
Ej, quiero buscar todos los que sean de madrid capital: "2-8-0-vacio-vacio" en los tres primeros input si hay datos y en el resto no, o a lo mejor solo quieren usar los 2 últimos input "-vacio-vacio-1-7".....
  #4 (permalink)  
Antiguo 16/01/2009, 10:22
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: busqueda por partes del contenido de un campo Código Postal

Creo que eso lo puedes resolver con programación, construyendo dinámicamente la consulta y pasándola los parámetros a LIKE según que campos tengas rellenados.

Ejemplo si tienes los 3 primero campos rellenados

Código sql:
Ver original
  1. SELECT codigo_postal FROM tabla WHERE codigo_postal LIKE "campo1__campo2__cammpo3%";

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #5 (permalink)  
Antiguo 16/01/2009, 10:25
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: busqueda por partes del contenido de un campo Código Postal

Hola de nuevo,

Para cada input que vacío pon el caráter "_", y para el input no vacío pon el que te introduzca el usuario.

Ejemplo si te introduce
input 1-> 2
input 2->nada
input 3->4
input 4->nada
input 5->1

select codigo_postal from tabla where codigo_postal like "2_4_1";

Creo que funciona así, yo lo he probado y me funciona.

Un saludo y suerte
  #6 (permalink)  
Antiguo 16/01/2009, 10:28
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: busqueda por partes del contenido de un campo Código Postal

Cita:
Iniciado por kurtinaitis Ver Mensaje
Hola de nuevo,

Para cada input que vacío pon el caráter "_", y para el input no vacío pon el que te introduzca el usuario.

Ejemplo si te introduce
input 1-> 2
input 2->nada
input 3->4
input 4->nada
input 5->1

select codigo_postal from tabla where codigo_postal like "2_4_1";

Creo que funciona así, yo lo he probado y me funciona.

Un saludo y suerte
Cita:
Ej, quiero buscar todos los que sean de madrid capital: "2-8-0-vacio-vacio" en los tres primeros input si hay datos y en el resto no, o a lo mejor solo quieren usar los 2 últimos input "-vacio-vacio-1-7".....
Solo me falto aclarar que la consulta que pongo es para buscar datos que tengan la estructura 2-8-6.. etc osea que tienen un guion

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #7 (permalink)  
Antiguo 20/01/2009, 03:16
 
Fecha de Ingreso: octubre-2007
Mensajes: 130
Antigüedad: 16 años, 6 meses
Puntos: 2
Respuesta: busqueda por partes del contenido de un campo Código Postal

Hola a todos, gracias por vuestras respuestas! la cosa se esta complicando un poco y no sé si voy bien encaminada. Os cuento lo que tengo que hacer y a ver si entre todos encontramos la mejor manera de montar esta consulta.....
Tengo 4 filtros: Edad, Sexo, Tipo, Código Postal. Hasta aquí sería una consulta sin complicaciones de no ser por que necesitan consultar por cualquier parte del campo Código Postal. Para hacer la búsqueda he guardado cada elemento del código postal en un campo de la BBD es decir: cp1,cp2,cp3,cp4,cp5 y he montado la siguiente consulta:
Cita:
"select *
from user where novedad_email='si' and tipo LIKE '%".$_GET["soy"]."%' AND sexo LIKE '%".$_GET["sexo"]."%' AND edad LIKE '%".$_GET["edad"]."%' AND cp1 LIKE '%".$cp1."%' AND cp2 LIKE '%".$cp2."%' AND cp3 LIKE '%".$cp3."%' AND cp4 LIKE '%".$cp4."%' AND cp5 LIKE '%".$cp5."%' "
Pero no muestra bien los datos.....
  #8 (permalink)  
Antiguo 20/01/2009, 03:30
 
Fecha de Ingreso: octubre-2007
Mensajes: 130
Antigüedad: 16 años, 6 meses
Puntos: 2
Respuesta: busqueda por partes del contenido de un campo Código Postal

Ya está resuelto!!! faltaban campos en la BDD, lo que hago es desmenuzar el código postal en 5 campos en la BDD y así poder compararlos, funciona perfectamente... muchas gracias por vuestra ayuda!
  #9 (permalink)  
Antiguo 20/01/2009, 12:37
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: busqueda por partes del contenido de un campo Código Postal

auri501,

yo no dividiría ese código postal en campos. Si quieres buscar por partes y sabes que hay 5, haces la consulta con substring, para el primero de izquierda a derecha;
... WHERE... and cp1 = SUBSTRING(codigo,1,1)
para el segundo and cp2 = SUBSTRING(codigo,2,1)
para el tercero and cp3 = SUBSTRING(codigo,3,1)
...
etc.
Creo que eso es mejor que hacer 5 campos, con los problemas que eso supone a la hora de teclear y luego tener que mostrar mediante un CONCAT.
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 22:15.