Foros Programación Servidor

¿Cómo agrupar ANDs y ORs?

3 3 Respuestas Miércoles 30 de septiembre, 2009
Mi pregunta es sobre agrupar ANDs y ORs...

Tengo una tabla con proyectos y dos características a ellos, que son divisibilidad y estado... Los hay divisibles y no divisibles, y respecto a estado están disponibles, asignados, finalizados y publicados...

Cómo puedo hacer un mysql_query en el que obtenga...
Todos los divisibles y sólo los disponibles que no son divisibles?

graaaaacias!!
Registrado desde 27/05/04
Número de posts: 70
  • Avatar de happywebcoder happywebcoder Registrado desde 19/03/07 / Número de posts: 350
    Si lo he entendido bien te bastaría con un único OR:
    select from Proyectos where divisibles or disponibles
    y no sería necesario un (disponibles AND NOT divisibles) ya que los disponibles que son divisibles los vas a obtener igualmente con la primera condición.
    Publicado hace 2 años
  • Avatar de skuareisnext skuareisnext Registrado desde 27/05/04 / Número de posts: 70
    gracias! lo pude hacer! me queda la duda de si se pueden agrupar ands y ors entre paréntesis, pero lo resolví de todas formas
    Publicado hace 2 años
  • Avatar de happywebcoder happywebcoder Registrado desde 19/03/07 / Número de posts: 350
    Se pueden agrupar, de hecho lo más recomendable cuando combinas varios operadores en una consulta es usar siempre paréntesis para dejar claro el orden en el que los aplicas de forma visual.
    Si por ejemplo usas esta consulta:
    select from Proyectos where asignados AND pendientes OR publicados
    no queda del todo claro qué operador aplicas antes, es mejor indicarlo de forma explícita con paréntesis.
    La consulta será una de estas, en función de lo que quieres obtener:
    select from Proyectos where asignados AND (pendientes OR publicados)
    o
    select from Proyectos where (asignados AND pendientes) OR publicados
    Publicado hace 2 años