Comunidad de diseño web y desarrollo en internet online

¿como ordenar resultados de una consulta a MySQL?

Citar            
MensajeEscrito el 08 Ago 2007 12:56 pm
Hola a tod@s y gracias por vuestro tiempo.

El titulo del post se me quedaba corto para explicar claramente el objeto de mi pregunta.
En realidad deberia ser:

"Cómo ordenar resultados de una consulta MySQL por orden de relevancia?"

Estoy creando un motor de busqueda para una pagina (es el primero que hago) para poder encontrar entradas en una tabla, la busqueda puede ser por varias palabras, no importa el numero porque la consulta se crea de manera dinamica, asi que pondre el caso mas sencillo, una busqueda con dos palabras, el codigo de la consulta MySQL es el siguiente:

Código :

SELECT *
FROM `test`
WHERE (
`campo` LIKE %pollo%
AND `campo` LIKE %vaca%
)
OR (
`campo` LIKE %pollo%
OR `campo` LIKE %vaca%
)
LIMIT 0 , 30 


El problema es que me gustaria que me devolviera los resultados por orden de relevancia , o sea, los resultados que cumplen las dos condiciones (AND) y despues los que solo cumplen una de las condiciones (OR).
Se que se puede hacer con php, haciendo dos consultas o haciendo despues una nueva consulta por cada resultado obtenido, pero despues tendre problemas con la paginacion de resultados y ademas creo que es mucho lio. Ademas como no se demasiado de SQL es un buen momento para aprender un "poquillo".

Bueno, otra vez, gracias por vuestro tiempo.

Por ChickenExecutor

351 de clabLevel

2 tutoriales
1 articulo

 

El pais de la Resistance

mozilla
Citar            
MensajeEscrito el 08 Ago 2007 01:48 pm
fácil:

Código :

SELECT * FROM
(
SELECT *
FROM `test`
WHERE 
   `campo` LIKE %pollo%
   AND `campo` LIKE %vaca%
UNION
SELECT *
FROM `test`
WHERE 
   `campo` LIKE %pollo%
   OR `campo` LIKE %vaca%
) AS t1
LIMIT 0 , 30 


Saludos ^^

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 08 Ago 2007 02:11 pm
Pues muchas gracias!
Funciona a la perfeccion. No conocia la opcion UNION y aqui parece la mas apropiada.
Voy a estudiar un poco la doc de MySQL, para que esto no me vuelva a pasar.

Gracias de nuevo
Dano Rox!!! :cool:

Por ChickenExecutor

351 de clabLevel

2 tutoriales
1 articulo

 

El pais de la Resistance

mozilla
Citar            
MensajeEscrito el 14 Ago 2007 08:24 pm
Lo que debes estudiar es el lenguaje SQL el cual es un estandar, aunque MySQL no lo implementa totalmente.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 15 Ago 2007 11:52 am
... que es exactamente lo que digo en mi primer mensaje...

Por ChickenExecutor

351 de clabLevel

2 tutoriales
1 articulo

 

El pais de la Resistance

mozilla

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.