Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/04/2013, 17:04
Naica
 
Fecha de Ingreso: junio-2010
Mensajes: 49
Antigüedad: 14 años, 9 meses
Puntos: 3
Ordenar registros con instr()

Hola!!, tengo una duda con respecto a como ordenar registros con la función instr.

Encontré el siguiente código:

Código:
ORDER BY IF(INSTR(webTitulo, 'recetas de cocina'), INSTR(webTitulo, 'recetas de cocina'), 65535)
Lo que hace este código es ordenar los registros que contengan la frase buscada más cerca del inicio, en este caso "recetas de cocina".

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, les muestro el actual:

Código MySQL:
Ver original
  1. SELECT uDR.webTitulo, uDR.webDescripcion, uDR.webkeywords, uDR.weburl, SUM(uDR.priority) as SPriority
  2.  
  3. (SELECT s1.webTitulo, s1.webDescripcion, s1.weburl, s1.webkeywords, 4 as priority FROM webs s1 WHERE MATCH (webTitulo) AGAINST ('recetas de cocina'))
  4.  
  5.  
  6. (SELECT s2.webTitulo, s2.webDescripcion, s2.weburl, s2.webkeywords, 2 as priority FROM webs s2 WHERE MATCH (webkeywords) AGAINST ('recetas de cocina*' IN BOOLEAN MODE))
  7.  
  8.  
  9. (SELECT s3.webTitulo, s3.webDescripcion, s3.weburl, s3.webkeywords, 1 as priority FROM webs s3 WHERE MATCH (webDescripcion) AGAINST ('recetas de cocina'))
  10.  
  11.  
  12. (SELECT s4.webTitulo, s4.webDescripcion, s4.weburl, s4.webkeywords, 1 as priority FROM webs s4 WHERE MATCH (weburl) AGAINST ('recetas de cocina))) uDR
  13.  
  14. GROUP BY uDR.webTitulo, uDR.weburl, uDR.webDescripcion, uDR.webkeywords
  15.  
  16. ORDER BY SPriority DESC

¿Cómo puedo lograr combinar ambos algoritmos? intenté con un AND pero lo único que produce es que no se muestren los resultados, y otra duda que me surgió es ¿Cómo puedo utilizar instr() para la descripcion y keywords?.

Saludos y gracias a todos los que me ayuden!
__________________
Naica enciclopedia animal