Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/11/2012, 15:00
Avatar de hshadow
hshadow
 
Fecha de Ingreso: abril-2008
Mensajes: 42
Antigüedad: 16 años
Puntos: 0
Obtener resultados de la base dadas ciertas prioridades

Hola, como va?

Tengo una base de usuarios y un formulario de búsqueda que tengo que hacer que me traiga los usuarios listados de tal forma que le dé prioridad a los que tengan mas datos.

La onda es obtener (en este caso) cuatro resultados, primero de quienes tengan foto, empresa y operaciones (la columna que define si tienen operaciones se llama "is_something" y es BOOLEAN), si no llegué a cuatro elementos continuo por quienes tengan foto y compania, luego por quienes tenga sólo foto y por último los demás.

En otras palabras, dadas las complicaciones, como filtrar resultados ya obtenidos y hacer varios queries necesito convertir los siguientes queries en uno solo o algo así.

Código MySQL:
Ver original
  1. select u.first_name, u.last_name, u.company, u.country_id, u.state_id from users as u
  2. left join users_operations as uo on u.id = uo.user_id
  3. where u.has_pic and u.company != '' and uo.is_something limit 0, 4
  4.  
  5. select u.first_name, u.last_name, u.company, u.country_id, u.state_id from users as u
  6. left join users_operations as uo on u.id = uo.user_id
  7. where u.has_pic and u.company != '' limit 0, 4
  8.  
  9. select u.first_name, u.last_name, u.company, u.country_id, u.state_id from users as u
  10. left join users_operations as uo on u.id = uo.user_id
  11. where u.has_pic limit 0, 4
  12.  
  13. select u.first_name, u.last_name, u.company, u.country_id, u.state_id from users as u
  14. left join users_operations as uo on u.id = uo.user_id
  15. limit 0, 4
El patrón de búsqueda no importa, es un LIKE común y silvestre que después agrego.

Saludos.

Última edición por gnzsoloyo; 19/11/2012 a las 04:25 Razón: Etiquetado incorrecto en código SQL