I have this query:
SELECT * FROM (`users`) WHERE `date_next_payment` <= \'2011-02-02\' AND `status` = \'active\' OR `status` = \'past due\' >
SELECT * FROM (`users`) WHERE `date_next_payment` <= \'2011-02-02\' AND `status` = \'active\' OR `status` = \'past due\'
In your first query status = 'active' is condition false then not evalute next status column condition(status )
status
in Your second query
parentheses () have high priority
. So (status = 'active' OR status = 'past due') condition evaluate first.