Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

where_id_in() for selecting multiple records by primary key #202

Merged
merged 2 commits into from
May 28, 2014

Commits on May 18, 2014

  1. Multiple OR'ed conditions support

    Multiple OR'ed conditions
    -------------------------
    
    You can add simple ORed conditions to the same WHERE clause using
    ``where_any_is``. You should specify multiple conditions using an
    array of items. Each item will be an associative array that contains
    a multiple conditions.
    
    ```php
    
        <?php
        $people = ORM::for_table('person')
                    ->where_any_is(array(
                        array('name' => 'Joe', 'age' => 10),
                        array('name' => 'Fred', 'age' => 20)))
                    ->find_many();
    
        // Creates SQL:
        SELECT * FROM `widget` WHERE (( `name` = 'Joe' AND `age` = '10' ) OR ( `name` = 'Fred' AND `age` = '20' ));
    ```
    
    By default, it uses the equal operator for every column, but it can be
    overriden for any column using a second parameter:
    
    ```php
    
        <?php
        $people = ORM::for_table('person')
                    ->where_any_is(array(
                        array('name' => 'Joe', 'age' => 10),
                        array('name' => 'Fred', 'age' => 20)), array('age' => '>'))
                    ->find_many();
    
        // Creates SQL:
        SELECT * FROM `widget` WHERE (( `name` = 'Joe' AND `age` > '10' ) OR ( `name` = 'Fred' AND `age` > '20' ));
    ```
    
    If you want to set the default operator for all the columns, just pass it as
    the second parameter:
    
    ```php
    
        <?php
        $people = ORM::for_table('person')
                    ->where_any_is(array(
                        array('score' => '5', 'age' => 10),
                        array('score' => '15', 'age' => 20)), '>')
                    ->find_many();
    
        // Creates SQL:
        SELECT * FROM `widget` WHERE (( `score` > '5' AND `age` > '10' ) OR ( `score` > '15' AND `age` > '20' ));
    ```
    lrlopez committed May 18, 2014
    Configuration menu
    Copy the full SHA
    3f86f09 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    db07121 View commit details
    Browse the repository at this point in the history