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

meter un array dentro de una consulta

Estas en el tema de meter un array dentro de una consulta en el foro de Mysql en Foros del Web. hola a todos mi pregunta es la siguiente: tengo una tabla de oficinas, la cual contiene las siguientes columnas: `item`, `entidad`, `codigo`, `tipo`, `nombre`, `direccion`, ...
  #1 (permalink)  
Antiguo 30/09/2015, 13:58
 
Fecha de Ingreso: septiembre-2015
Mensajes: 58
Antigüedad: 9 años, 2 meses
Puntos: 2
meter un array dentro de una consulta

hola a todos

mi pregunta es la siguiente:
tengo una tabla de oficinas, la cual contiene las siguientes columnas:

`item`, `entidad`, `codigo`, `tipo`, `nombre`, `direccion`, `regional`, `ciudad`, `estado`.

a los cuales debo hacer filtros por ciudad y por item, ya que cada oficina obviamente tiene su PK en el item. Cuando realizo filtro por item me trae la informacion de otra tabla de solicitudes que tengan dicho item, esto no genera problema. El problema radica cuando quiero hacer el filtro por ciudades. ya que supongo que debo recoger todos los items que correspondan a dicha ciudad en un array para poder realizar la consulta por ciudad.
esto lo hago desde php,

mi pregunta puntualmente sería, como puedo recoger un array con todos los items que tengan en por ejemplo "bogota" en la columna ciudad y hacer la consulta por ejemplo

Código MySQL:
Ver original
  1. select * from solicitud where itemEntidad = (aqui deberia ir el arreglo supongo)

perdonen si la pregunta puede llegar a ser tonta, la verdad no se como hacerlo y de ante mano gracias.
  #2 (permalink)  
Antiguo 30/09/2015, 14:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: meter un array dentro de una consulta

No existen los array en MySQL, por consecuencia, no los puede interpretar.
Lo que quieres hacer se puede obtener de una forma simple, construiyendo la query así:

Código SQL:
Ver original
  1. SELECT * FROM solicitud WHERE itemEntidad IN(1, 3, 56, 89, 102)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 01/10/2015, 09:19
 
Fecha de Ingreso: septiembre-2015
Mensajes: 58
Antigüedad: 9 años, 2 meses
Puntos: 2
Respuesta: meter un array dentro de una consulta

si, ya lo solucione con una consulta anidada, quedó así:

Código MySQL:
Ver original
  1. select * from solicitud where codent = '14' and itemEntidad in (SELECT item FROM `oficina` WHERE entidad = 14 and ciudad = '$ciudad')

bueno en si la consulta tiene otros filtros, pero en general se hizo así, gracias a todos por las respuestas.
  #4 (permalink)  
Antiguo 01/10/2015, 09:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: meter un array dentro de una consulta

POdría ser también:
Código MySQL:
Ver original
  1. SELECT s.*
  2. FROM solicitud S
  3.     INNER  JOIN oficina O ON S.itemEntidad = o.item AND s.codent = o.entidad
  4. WHERE codent = 14  AND o.ciudad = '$ciudad'
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: Ninguno
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:08.