Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/02/2012, 02:22
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 17 años
Puntos: 574
Respuesta: Problema al consultar con like

Código MySQL:
Ver original
  1. ...
  2. where  $condicion AND s1.webTitulo like '%$frase%'
  3. ....

Por que agregas detras de $condicion ese "AND s1.webTitulo like '%$frase%'" ?

Fijate lo que estas haciendo

X or Y or Z and XYZ

eso se interpreta así X or Y or (Z and XYZ) luego claro que no te da los resultados que buscas...

Recuerda que 2+3*5=2+(3*5) pero es distinto de (2+3)*5 con los operadores logicos pasa lo mismo

X or Y or Z and XYZ=X or Y or (Z and XYZ) y distinto de (X or Y or Z) and XYZ

en tu caso NO te sirve ninguna de las dos (con o sin parentesis).

Debes filtrar por $condicionX para cada campo ... y nunca filtrar por la frase entera.

Tambien prodias ir al principio y usar el MATCH AGAINST pero en cada una de las subconsultas del union y sobre un solo campo.... eso te ahorraria los explode.... En mi primer post sobre el tema interprete que buscabas $frase como cadena no como palabras independientes.

En esa query que nos mandas vas a tener repeticiones puesto que apesar de que UNION es igual a UNION DISTINCT por el campo priority siempre seran distintos....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 15/02/2012 a las 02:33