Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/10/2014, 17:12
Avatar de gnzsoloyo
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: determinar cual parámetro generó tal o cual resultado en SELECT LIKE

No existe forma directa para obtener la información que quieres desde el SQL en si. Especialmente cuando usas una condición OR, ya que esta es una disyunción que es TRUE cuando al menos una de las dos condiciones lo es, por lo que no diferencia sobre cual devuelve datos.
Para lograr algo aproximado a lo que deseas tendrás que crear una consulta con UNOIN, donde en cada consulta busques exclusivamente por una de ambas condiciones. Y además deberá hacerlo con UNION ALL, para que permita devolver aquellos casos donde se cumplen ambas simultáneamente.
Código MySQL:
Ver original
  1. SELECT 'jabon' parametro, descripcion
  2. FROM productos
  3. WHERE descripcion LIKE '%jabon%'
  4. SELECT 'shampoo' parametro, descripcion
  5. FROM productos
  6. WHERE descripcion LIKE '%shampoo%'

La verdad es que lo que quieres buscar parece carecer de utilidad genérica. Da la impresión de que quieres lograr algún tipo de valorización estadística que no es propia del SQL. En todo caso se parece más a lo que se consigue usando indices FULLTEXT y MATCH() AGAINST(), donde si aplica un cálculo de relevancia de lo encontrado en la búsqueda.
LIKE es demasiado genérico, y además lo estás usando de modo ineficiente... Vas a hacer demasiados full table scan en tus queries.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)