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

Sentencia LIKE, problema.

Estas en el tema de Sentencia LIKE, problema. en el foro de Mysql en Foros del Web. Hola! gracias por leerme de antemano. Tengo un problemilla usando la sentencia LIKE, os cuento. Tengo dos tablas, una con nombres (columna 1 la llamare) ...
  #1 (permalink)  
Antiguo 08/11/2008, 06:06
 
Fecha de Ingreso: octubre-2008
Mensajes: 9
Antigüedad: 15 años, 6 meses
Puntos: 0
Pregunta Sentencia LIKE, problema.

Hola! gracias por leerme de antemano. Tengo un problemilla usando la sentencia LIKE, os cuento. Tengo dos tablas, una con nombres (columna 1 la llamare) y otra con nombres y apellidos (columna 2). Pues bien, lo que quiero es saber que cadenas de texto de la columna 2 empiezan por los nombres de la columna 1. Se realizar búsquedas con un texto concreto, pero cuando se trata del contenido de un campo mas lo que sea me pierdo... ¿a alguien se le ocurre como puedo hacerlo? (si es que se puede ).
  #2 (permalink)  
Antiguo 08/11/2008, 09:02
 
Fecha de Ingreso: diciembre-2007
Mensajes: 50
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Sentencia LIKE, problema.

prueba esto

select * from tutabla
where columna2 like concat(columna1,'%')
  #3 (permalink)  
Antiguo 08/11/2008, 10:53
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Sentencia LIKE, problema.

Aunque no sé si te he entendido bien, creo que necesitas cruzar datos. Me explico: por lo que dices, o tienes dos tablas con una columna cada una, una con nombres y otra con nombres y apellidos, o tienes dos columnas de una misma tabla. En los dos casos la solución será hacer un cruce INNER JOIN sea de las tablas o de la tabla consigo misma. Pero debemos saber cuál es el campo o dato de unión para ese cruce. Si en la columna nombre y apellidos aparece primero el nombre separado con un espacio (ojo al peligro de los nombres compuestos), como por ej. Luis Martínez, puede hacerse así:
para dos tablas distintas
Código sql:
Ver original
  1. SELECT t2.nombreapellido, t1.nombre
  2. FROM tabla2 t2
  3. LEFT JOIN tabla1 t1 ON t1.nombre = LEFT( t2.nombreapellido, instr( t2.nombreapellido, ' ' ) -1 )

para una misma tabla
Código sql:
Ver original
  1. SELECT t2.nombreapellido, t2.nombre
  2. FROM tabla2 t2
  3. INNER JOIN tabla2 t1 ON t2.nombre = LEFT( t1.nombreapellido, instr( t1.nombreapellido, ' ' ) -1 )
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:06.