Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/10/2012, 14:37
Avatar de catpaw
catpaw
 
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
que prevalezca una condición aunque haya otras condiciones que la contradigan??

Que tal forer@s

Quisiera saber si es posible que en la consulta, se cumpla la primer condicion del where aunque lo siguiente que se ejecute lo contradiga??, veran:

tengo 2 tablas:

+--------------+
| carpeta
+--------------+
| id_carpeta
| id_permiso
+--------------+
y
+--------------+
| usuarios
+--------------+
| id_usuario
| autorizacion
+--------------+

se supone que los permisos para la tabla carpeta son:

1->Publico
2->Privado
3->Personalizado

en el campo autorizacion de la tabla usuario se guarda el id (o ids) de la carpeta

entonces por ejemplo:

+--------------------------+
| carpeta
+--------------------------+
| id_carpeta->1
| id_permiso->3
+--------------------------+
| id_carpeta->2
| id_permiso->2
+--------------------------+

+--------------+
| usuarios
+--------------+
| id_usuario->6
| autorizacion->1,2
+--------------+

la logica que quiero es:

cuando una carpeta tiene permiso 3 (personalizado) el usuario que tenga autorizacion de esa carpeta la vea

pero

cuando una carpeta tenga permiso 2 (privado) aunque el usuario que tenga autorizacion de esa carpeta por ningún motivo la vea

entonces volviendo al ejemplo, podria llegar a tener esta consulta:

Código MySQL:
Ver original
  1. select * from carpeta where permisos='3' and id_carpeta='1' or id_carpeta='2' order by id_carpeta ASC

y solo deberia mostrarme:

carpeta id_carpeta = 1

sin embargo me muestra las 2

Entonces, se puede hacer cumplir primero la condicion permisos='3' y aunque lo que tenga después lo revierta, pero esta prevalezca??

gracias