Ver Mensaje Individual
  #13 (permalink)  
Antiguo 23/02/2010, 10:01
urameshix
 
Fecha de Ingreso: octubre-2005
Mensajes: 240
Antigüedad: 18 años, 7 meses
Puntos: 1
Respuesta: Criterios de ordenación

No entiendo muy bien lo que me comentas.

Yo había pensado en crear otro camppo virtual llamado titulodesc (si encuentra en el titulo = 0, si encuentra en la descripcion = 1) y luego hacer la ordenación así:

ORDER BY titulodesc ASC,ordk2k ASC, ordlongitud DESC

¿Esto es posible?

Edito: Al final me ha quedado una consulta asi:

SELECT TITULO,ARCHIVO, IF(INSTR(TITULO,'k2k')>0,0,1) ordk2k, LENGTH(TEXTO) ordlongitud FROM referencias WHERE CATEGORIA='partners' AND MATCH(TITULO,TEXTO) AGAINST ('$buscar') ORDER BY ordk2k ASC, ordlongitud DESC

Pero es lo que te comento, no tengo manera de separar y poner primero los de coincidencia en el TITULO y luego los de coincidencia en el TEXTO.

Edito2: Al final lo he conseguido, poniendo un 'A' AS control en el primer select y luego 'B' AS control en el segundo y hacer un order by alfinal de todo.
Pero me encuentro que cuando me encuentra en los dos selects, me duplica el resultado, porque uno devuelve A y el otro B y entonces ya no son iguales. Me quedo asi la consulta:


Código PHP:
(SELECT TITULO,ARCHIVO,'A' AS titulotexto, IF(INSTR(TITULO,'k2k')>0,0,1) AS ordk2kLENGTH(TEXTO) AS ordlongitud FROM referencias WHERE CATEGORIA='partners' AND MATCH(TITULOAGAINST ('AIDO'))
UNION DISTINCT
(SELECT TITULO,ARCHIVO,'B' AS titulotexto, IF(INSTR(TITULO,'k2k')>0,0,1) AS ordk2kLENGTH(TEXTO) AS ordlongitud FROM referencias WHERE CATEGORIA='partners' AND MATCH(TEXTOAGAINST ('AIDO'))
ORDER BY ordk2k ASCordlongitud DESC 
La desesperación ya es máxima.


Un saludo!

Última edición por urameshix; 24/02/2010 a las 11:45