Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/05/2008, 06:12
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: Duda sobre una consola

Cita:
Iniciado por dalphy Ver Mensaje
SELECT *
FROM eventos
WHERE destacado = 1
AND fecha_inicio BETWEEN '$hoy' and '$final'
OR fecha_final BETWEEN '$hoy' and '$final'

Pero me devuelve eventos que no estan destacados. Que hago mal??
no poner paréntesis para que la prioridad entre operadores AND, OR quede clara. Para resolver el problema usa los paréntesis

SELECT *
FROM eventos
WHERE destacado = 1
AND (fecha_inicio BETWEEN '$hoy' and '$final'
OR fecha_final BETWEEN '$hoy' and '$final')

Ahora cumplirá las dos condiciones; del otro modo, entendía que debía cumplir la la condición destacado = 1 y la de la fecha de inicio, o bien lo que dice el OR, sólo lo referido a la fecha final. Y te salían registros destacados que cumplían la condición de fecha de inicio, y también te salían no destacados que cumplían con la condición de fecha final...

Última edición por jurena; 01/05/2008 a las 10:15