Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/08/2011, 02:04
filmixt
 
Fecha de Ingreso: septiembre-2008
Mensajes: 91
Antigüedad: 15 años, 7 meses
Puntos: 1
Pregunta Forzando un LIKE en subconsulta

Estimados compañeros,
Quisiera plantearles el porqué de la cuestión, ya que con suerte la solución o el arreglo la he conseguido obtener.

Es sencillisimo. Piénsese de una tabla llamada "test" con un listado de nombres, con columna primaria "id", y "nombre".

Si queremos hacer una consulta dentro de la misma tabla para encontrar semejanzas de nombres y mostrar cuales han habido, nos encontramos con:

SELECT a.id, (
SELECT GROUP_CONCAT( CAST( b.id AS CHAR ) )
FROM test b
WHERE b.nombre LIKE CONCAT( '%', a.nombre, '%' )
AND a.id != b.id
) AS algo
FROM test a
HAVING algo IS NOT NULL

Mi pregunta es, ¿porqué he tenido que concatenar los % para poder hacer esa consulta LIKE? He tenido la suerte de salir con esa idea para probar y funciona. Decir que sí, que poniendo solo "LIKE a.nombre" hace una comparación, pero solo como si de " LIKE 'a.nombre%' " se tratara!

Es una curiosidad que quisiera entender, muchas gracias de antemano :)