рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИрдмреЗ рдкрд░ рдкреЛрд╕реНрдЯ рдереЗ ред рд▓реЗрдХрд┐рди рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрди рд▓рд┐рдЦрдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛:
SELECT * FROM `table` WHERE `sex`= "male" AND (`age` > 18 OR `hobby` = "sport");
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреА рд╣реИ рд╡рд╣ рд╣реИ рдСрд░реЛрд╡реЗрдпрд░ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ:
$this->select() ->where( "sex = ?", "male" ) ->where( "age > ?", 18, "INTEGER" ) ->orWhere( "hobby = ?", "sport" );
рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдирд┐рдореНрди SQL рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛:
SELECT `table`.* FROM `table` WHERE (`table`.`sex`= "male") AND (`table`.`age` > 18) OR (`table`.`hobby` = "sport");
рд╡рд╣ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рднреЗрдЬрдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ:
$select = $this->select(); $condition = $select->orWhere( "age > ?", 18, "INTEGER" ) ->orWhere( "hobby = ?", "sport" ) ->getPart( Zend_Db_Select::WHERE ); $condition = is_array( $condition ) ? implode( " ", $condition ) : $condition; $select->reset( Zend_Db_Select::WHERE ); $select->where( "sex = ?", "male" ) ->where( $condition );
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рдЕрдиреБрд░реЛрдз рд╣реИред рд╕рднреА рдХреЛ рдЕрдЪреНрдЫрд╛ рдХреЛрдбрд┐рдВрдЧ;)