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

SELECT con Array

Estas en el tema de SELECT con Array en el foro de Mysql en Foros del Web. Hola a todos, estoy algo debil con Mysql y les agradecería que me hecharan una mano. Gracias de antemano. El problema que tengo es el ...
  #1 (permalink)  
Antiguo 13/04/2010, 07:15
 
Fecha de Ingreso: abril-2010
Mensajes: 1
Antigüedad: 14 años
Puntos: 0
SELECT con Array

Hola a todos, estoy algo debil con Mysql y les agradecería que me hecharan una mano. Gracias de antemano.
El problema que tengo es el siguiente:
Tengo una tabla, llamemosla Tabla1 que tiene 3 columnas, llamemosla A, B, C.
La columna A es un entero, la columna B es otro entero pero la columna C contiene una lista o array por ejemplo: C=1,2,3,4,5
Necesito hacer una Select que me muestre las columnas A y B donde, en la columna C este un parametro que le pasaré yo por php por ejemplo: parametro=3.
Así es como lo tengo:
Select A, B
From Tabla1
Where $parametro in (C)

por supuesto $parametro no puede ser un valor, sino deberia ser un campo y C no deberia ser un campo sino una lista de valores.

Entonces como lo hariais.
Muchas Gracias
  #2 (permalink)  
Antiguo 13/04/2010, 08:48
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: SELECT con Array

suponiendo que tienes esto

Código MySQL:
Ver original
  1. mysql> select *from fs;
  2. +--------+--------+---------+
  3. | campo1 | campo2 | campo3  |
  4. +--------+--------+---------+
  5. |    100 |    200 | 1,2,3,4 |
  6. |    150 |    250 | 1,5,6,7 |
  7. +--------+--------+---------+
  8. 2 rows in set (0.00 sec)

Y buscas el 3.

Código MySQL:
Ver original
  1. mysql> select campo1,campo2 from fs where find_in_set('3',campo3) > 0;
  2. +--------+--------+
  3. | campo1 | campo2 |
  4. +--------+--------+
  5. |    100 |    200 |
  6. +--------+--------+
  7. 1 row in set (0.00 sec)

El 3 solo pertenece al primer registro y no al segundo.

Si buscamos por 1, debería mostrar ambos registros

Código MySQL:
Ver original
  1. mysql> select campo1,campo2 from fs where find_in_set('1',campo3) > 0;
  2. +--------+--------+
  3. | campo1 | campo2 |
  4. +--------+--------+
  5. |    100 |    200 |
  6. |    150 |    250 |
  7. +--------+--------+
  8. 2 rows in set (0.00 sec)

Si pasamos como parametro el 7, mostraría solo el segundo registro.

Código MySQL:
Ver original
  1. mysql> select campo1,campo2 from fs where find_in_set('7',campo3) > 0;
  2. +--------+--------+
  3. | campo1 | campo2 |
  4. +--------+--------+
  5. |    150 |    250 |
  6. +--------+--------+
  7. 1 row in set (0.00 sec)

Y si mostyrams el 12, (No existe en ninguno) no debería mostrar nada.
Código MySQL:
Ver original
  1. mysql> select campo1,campo2 from fs where find_in_set('12',campo3) > 0;
  2. Empty set (0.00 sec)
  3.  
  4. mysql>

Es así como lo necesitas?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: select, parámetros
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:53.