How exactly does using OR in a MySQL statement differ with/without parentheses?

后端 未结 8 1616
难免孤独
难免孤独 2020-11-29 08:20

I have this query:

SELECT * FROM (`users`) WHERE `date_next_payment` <= \'2011-02-02\' 
    AND `status` = \'active\' OR `status` = \'past due\'
         


        
8条回答
  •  难免孤独
    2020-11-29 08:56

    in

    SELECT * FROM (`users`) WHERE `date_next_payment` <= '2011-02-02' 
        AND `status` = 'active' OR `status` = 'past due'
    

    it will consider first date_next_payment <= '2011-02-02' AND status = 'active' and then the boolean answer of this will be done OR with status = 'past due'

    While in

    SELECT * FROM (`users`) WHERE `date_next_payment` <= '2011-02-02'
        AND (`status` = 'active' OR `status` = 'past due')
    

    First OR will be done and then And will be done... Thats y this will give the different answer

提交回复
热议问题