Pensar dos veces :
Como se puede ver en la pregunta que necesito para seleccionar todas las filas que tienen cualquiera de los dos valores dados de forma dinámica y donde boolean las filas (tinyint) es falsa
Aquí está mi consulta actual, pero sólo está excluyendo las filas que tienen el category_company_id
como 0 y category_disabled
como 1 y no los que tienen category_company_id
como 1 y category_disabled
como 1
SELECT * FROM `category`
WHERE `category_company_id` = 1
OR `category_company_id` = 0
AND `category_disabled` = 0
¿Qué estoy haciendo mal?
¿Hay una manera de separar el WHERE y O de la Y?
Gracias por adelantado
pasarán;
Su código es equivalente a:
WHERE `category_company_id` = 1
OR (`category_company_id` = 0 AND `category_disabled` = 0)
porque Y tiene mayor prioridad que OR.
Se pueden utilizar paréntesis:
WHERE (`category_company_id` = 1 OR `category_company_id` = 0 )
AND `category_disabled` = 0
o el operador IN:
WHERE `category_company_id` IN (0, 1) AND `category_disabled` = 0