Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/06/2012, 14:55
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: condicionales en un query

En tu contexto esto es irrelevante:
Código MySQL:
Ver original
  1. ReMovil like '%'
  2.     and RePuntoControl like '%'
Lo que sucede es que no saca ni pone nada, pero manda a ejecutar una comparación que no realiza nada... Ese LIKE hace que MySQL devuelva todos los registros, sin iltrar ninguna condición.
¿Se entiende?
Por otro lado, comparar uno a uno varios valores con el mismo campo, no es eficiente a menos que sea con AND. Es mejor, en el OR, usar IN(listadevalores)
Tabién ten en cuenta que poner como cadenas de texto valores que se comparan con campos numéricos puede llevar a hacer que MySQL pierda tiempo haciendo conversiones implícitas inencesarias.
Los valores numéricos van siempre sin apostrofes.

Mas o menos andaría por acá:
Código MySQL:
Ver original
  1.     ReMovil,
  2.     ReMotivo,
  3.     RePuntoControl,
  4.     RePlaca,
  5.     ReLocalizacion,
  6.     MtNombre,
  7.     ReDateTime,
  8.     ReLatitud,
  9.     ReLongitud
  10.     reportes LEFT JOIN motivos ON ReMotivo = MtId
  11.     AND ReMotivo IN(101, 103, 257, 256, 10)
  12.     OR (ReDistancia >= 0 and ReDistancia < 1.5)
  13. ORDER BY ReDateTime desc
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)