Ver Mensaje Individual
  #7 (permalink)  
Antiguo 01/04/2013, 16:14
Naica
 
Fecha de Ingreso: junio-2010
Mensajes: 49
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Ordenar registros por distancia PHP y MySQL

Gracias por la respuesta Cuasatar, busqué un símil a stripos en MySQL y encontré la función INSTR.

Puedo hacer el order by y que se ordenen por posición en el título, pero no puedo implementarlo bien, este es el código que encontré:

Código MySQL:
Ver original
  1. ORDER BY IF(instr(webTitulo, '$frase'), instr(webTitulo, '$frase'), 65535)

Si lo reemplazo por mi actual order by, funciona perfecto me ordena por distancia de la palabra buscada en el título, pero deja inservible a el algoritmo anterior.

Quisiera poder combinar a ambos algoritmos, te muestro el actual:

Código MySQL:
Ver original
  1. $sqlBuscar = $server_link->query("SELECT uDR.webTitulo, uDR.webDescripcion, uDR.webkeywords, uDR.weburl, SUM(uDR.priority) as SPriority
  2. FROM (
  3.  
  4. (SELECT s1.webTitulo, s1.webDescripcion, s1.weburl, s1.webkeywords, $a as priority FROM webs s1 WHERE MATCH (webTitulo) AGAINST ('$frase'))
  5.  
  6. UNION
  7.  
  8. (SELECT s2.webTitulo, s2.webDescripcion, s2.weburl, s2.webkeywords, $b as priority FROM webs s2 WHERE MATCH (webkeywords) AGAINST ('$frase*' IN BOOLEAN MODE))
  9.  
  10.  
  11.  
  12. UNION
  13.  
  14. (SELECT s3.webTitulo, s3.webDescripcion, s3.weburl, s3.webkeywords, $c as priority FROM webs s3 WHERE MATCH (webDescripcion) AGAINST ('$frase'))
  15.  
  16. UNION
  17.  
  18. (SELECT s4.webTitulo, s4.webDescripcion, s4.weburl, s4.webkeywords, $d as priority FROM webs s4 WHERE MATCH (weburl) AGAINST ('$frase'))) uDR
  19.  
  20. GROUP BY uDR.webTitulo, uDR.weburl, uDR.webDescripcion, uDR.webkeywords
  21.  
  22. ORDER BY SPriority DESC
  23.  
  24.                       LIMIT $inicio, $TAMANO_PAGINA ");

¿Hay alguna forma para combinar ambos?, probé con el operador AND pero no funcionó, no me mostraba ningún registro.

Saludos!!

PD: Actualmente estoy utilizando full text, pero tenía ciertos inconvenientes, así que decidi combinarlo con BOOLEAN MODE y aplicar este algoritmo que intentaba recién.
__________________
Naica enciclopedia animal