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

comparar lista ids

Estas en el tema de comparar lista ids en el foro de Mysql en Foros del Web. Tengo una bd en mysql, con tres tablas relacionadas entre ellas. Voy a poner la estructura básica de la tabla: TABLA1: id_concierto int(11) No grupo ...
  #1 (permalink)  
Antiguo 17/07/2013, 04:07
 
Fecha de Ingreso: julio-2013
Mensajes: 2
Antigüedad: 10 años, 9 meses
Puntos: 0
Pregunta comparar lista ids

Tengo una bd en mysql, con tres tablas relacionadas entre ellas.
Voy a poner la estructura básica de la tabla:
TABLA1:
id_concierto int(11) No
grupo int(11) No
lloc varchar(30) No
tag varchar(50) No

TABLA2:
id_grupo int(11) No
grupo varchar(20) No

TABLA3:
id_tag int(11) No
tag varchar(20) No

Para relacionarlos, uso un inner join:
SELECT... [escribo todos los campos]
FROM TABLA2
INNER JOIN TABLA1
ON TABLA2.id_grupo = TABLA1.grupo
INNER JOIN TABLA3
ON [? este es el trozo que no se que poner]
AND TABLA3.tag = "rock"

La estructura que tiene es que en TABLA1.tag es una lista de números separados por comas. Necesito que al hacer la consulta compare si existe un determinado numero(TABLA3.id_tag) en esta lista separada por comas.

Espero que puedan ayudarme, gracias.
  #2 (permalink)  
Antiguo 17/07/2013, 04:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: comparar lista ids

Es algo que podrías resolver con el manual...
http://dev.mysql.com/doc/refman/5.0/...functions.html
Cita:
FIND_IN_SET(str,strlist)

Retorna un valor en el rango de 1 a N si la cadena str está en la lista de cadenas strlist consistente de N subcadenas. Una lista de cadenas es una cadena compuesta de subcadenas separadas por caracteres ',' . Si el primer argumento es una cadena constante y el segundo es una columna de tipo SET, la función FIND_IN_SET() está optimizada para usar aritmética de bit. Retorna 0 si str no está en strlist o si strlist es la cadena vacía. Retorna NULL si algún argumento es NULL. Esta función no funciona apropiadamente si el primer argumento contiene un carácter de coma (',') .
Código MySQL:
Ver original
  1. mysql> SELECT FIND_IN_SET('b','a,b,c,d');
  2.         -> 2
Incluso, como verás, puedes detectar en qué posición está el valor.

El manual es tu amigo... conectate con el.
__________________
¿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 17/07/2013, 04:31
 
Fecha de Ingreso: julio-2013
Mensajes: 2
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: comparar lista ids

Gracias gnzsoloyo
sinceramente, había estado mirando el manual pero llevaba ya un buen rato dándole vueltas y me había hecho un buen lío... Ahora funciona perfecto. Muchas gracias.

Etiquetas: campo, ids, join, lista, select, sql, tabla
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 18:28.