Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

order by Score + otro campo

Estas en el tema de order by Score + otro campo en el foro de Mysql en Foros del Web. Hola a todos Otra vez mas por aqui con dudillas facilonas En una busqueda con MATCH AGAINST.... Necesito ordenar una busqueda por mayor coincidencia y ...
  #1 (permalink)  
Antiguo 08/01/2008, 16:29
Avatar de intergus  
Fecha de Ingreso: mayo-2007
Mensajes: 126
Antigüedad: 16 años, 10 meses
Puntos: 3
order by Score + otro campo

Hola a todos

Otra vez mas por aqui con dudillas facilonas

En una busqueda con MATCH AGAINST....

Necesito ordenar una busqueda por mayor coincidencia y por otro campo de puntos, a mas puntos, deberia salir antes que otro con menos puntos, pero no antes que otro que tenga mas coincidencia en la busqueda. Espero haberme explicado

ORDER BY Score,puntos DESC

Esto es lo que puse pero no sale como yo quiero. No se si se podra pero creo que deberia ser algo asi como:

ORDER BY SUM(Score,puntos) DESC

aunque imagino que la sintaxis será algo mas compleja.

Esto seria una forma valida de conseguir el orden que pretendo o me estoy complicando mucho??

el campo punto es un campo que numerico al que asigno un numero y a mayor numero, mejor posición debe aparecer, pero creo que nunca deberia aparecer por encima de otro que tenga mayor coincidencia de palabras con la busqueda que se esté realizando.

A ver si se os ocurre algo.

Gracias.
Salu2

Última edición por intergus; 08/01/2008 a las 16:53
  #2 (permalink)  
Antiguo 08/01/2008, 18:13
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: order by Score + otro campo

El MATCH AGAINST puedes no sólo utilizarlo en el WHERE, sino también como un campo del select. Algo como:
SELECT campo1, campo2,..., puntos, MATCH "asasas" AGAINST(campos,de,texto) as Score WHERE MATCH "asasas" AGAINST(campos,de,texto) ORDER BY Score, puntos

debería servir.
  #3 (permalink)  
Antiguo 09/01/2008, 11:25
Avatar de intergus  
Fecha de Ingreso: mayo-2007
Mensajes: 126
Antigüedad: 16 años, 10 meses
Puntos: 3
Re: order by Score + otro campo

Hola Pragone, gracias por la respuesta.

No entiendo como dices que lo use, mira, este es mi select:

SELECT *, MATCH ( descripcion, pal_busca ) AGAINST( '$busqueda' ) AS Score FROM $tabla WHERE MATCH ( descripcion, pal_busca ) AGAINST( '$busqueda' ) ORDER BY Score DESC

donde descripcion y pal_busca son campos de la base de datos designados como fulltext y $busqueda es la variable que viene del formulario de busqueda. Debería añadir el campo 'puntos' (que ya no se donde ponerlo, por eso no está en el Select) junto al Score o algo así ¿no?
  #4 (permalink)  
Antiguo 09/01/2008, 15:33
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: order by Score + otro campo

SI puntos es un campo de $tabla, entonces te basta con cambiar:
ORDER BY Score DESC
por
ORDER BY Score DESC, puntos DESC
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:53.