The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DB::Object::IN - IN Operator Object

SYNOPSIS

    my $op = $dbh->IN( 1, 2, 3 );
    # will produce:
    IN ( 1, 2, 3 )

    "'something'" == $dbh->IN( qw( some other words ) );
    # 'something' IN ( some, other, words );
    "something" != $dbh->IN( qw( some other words ) );
    # 'something' NOT IN ( some, other, words );

    my $tbl = $dbh->my_table || die( $dbh->error );
    $tbl->as( 't' );
    my $sth = $tbl->select( 'DISTINCT field' );
    my $sql = $tbl->fo->somefield == $dbh->IN( $sth );
    say $sql;
    # t.somefield IN (SELECT DISTINCT t.field FROM my_table t)

DESCRIPTION

This is the IN object class inheriting from DB::Object::Operator

METHODS

new

Takes a list of values that are saved in the newly created object returned.

as_string

Returns a string representation of this operator.

For example:

    $dbh->IN( qw( some other words ) );
    # IN ( some, other, words );

operator

Returns IN

value

In list context, returns an array of those values passed to "new" and in scalar context, it returns those value as array reference.

OVERLOADING

Objects for this class have their == and != operators overloaded.

When overloading is called, it returns a new DB::Object::Expression that represents the formatted statement.

SEE ALSO

https://www.postgresql.org/docs/12/functions-subquery.html#FUNCTIONS-SUBQUERY-IN

https://www.postgresql.org/docs/12/functions-comparisons.html#FUNCTIONS-COMPARISONS-IN-SCALAR

https://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#operator_in

https://www.sqlite.org/lang_expr.html#the_in_and_not_in_operators

AUTHOR

Jacques Deguest <jack@deguest.jp>

COPYRIGHT & LICENSE

Copyright (c) 2023 DEGUEST Pte. Ltd.

You can use, copy, modify and redistribute this package and associated files under the same terms as Perl itself.