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 originalSELECT uDR.webTitulo
, uDR.webDescripcion
, uDR.webkeywords
, uDR.weburl
, SUM(uDR.priority
) as SPriority
(SELECT s1.webTitulo
, s1.webDescripcion
, s1.weburl
, s1.webkeywords
, 4 as priority
FROM webs s1
WHERE MATCH (webTitulo
) AGAINST
('recetas de cocina'))
(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
))
(SELECT s3.webTitulo
, s3.webDescripcion
, s3.weburl
, s3.webkeywords
, 1 as priority
FROM webs s3
WHERE MATCH (webDescripcion
) AGAINST
('recetas de cocina'))
(SELECT s4.webTitulo
, s4.webDescripcion
, s4.weburl
, s4.webkeywords
, 1 as priority
FROM webs s4
WHERE MATCH (weburl
) AGAINST
('recetas de cocina))) uDR
GROUP BY uDR.webTitulo, uDR.weburl, uDR.webDescripcion, uDR.webkeywords
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!