---
name: "Class::DBI::AbstractSearch"
section: "3pm"
platform: "linux"
package: "libclass-dbi-abstractsearch-perl"
version: "0.07-4.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Class::DBI::AbstractSearch"
---

# Class::DBI::AbstractSearch(3pm)

Abstract Class::DBI's SQL with SQL::Abstract::Limit

## NAME

Class::DBI::AbstractSearch - Abstract Class::DBI's SQL with SQL::Abstract::Limit

## SYNOPSIS

```
  package CD::Music;
  use Class::DBI::AbstractSearch;
  package main;
  my @music = CD::Music->search_where(
      artist => [ 'Ozzy', 'Kelly' ],
      status => { '!=', 'outdated' },
  );
  my @misc = CD::Music->search_where(
      { artist => [ 'Ozzy', 'Kelly' ],
        status => { '!=', 'outdated' } },
      { order_by      => "reldate DESC",
        limit_dialect => 'LimitOffset',
        limit         => 1
        offset        => 2 });
```

## DESCRIPTION

Class::DBI::AbstractSearch is a Class::DBI plugin to glue SQL::Abstract::Limit into Class::DBI.

## METHODS

Using this module adds following methods into your data class.

- search\_where

  ```
    $class->search_where(%where);
  ```

  Takes a hash to specify WHERE clause. See SQL::Abstract for hash options.

  ```
    $class->search_where(\%where,\%attrs);
  ```

  Takes hash reference to specify WHERE clause. See SQL::Abstract for hash options. Takes a hash reference to specify additional query attributes. Class::DBI::AbstractSearch uses these attributes:

  - •

    **order\_by**

    Array reference of fields that will be used to order the results of your query.

  - •

    **limit\_dialect**

    Scalar, DBI handle, object class, etc. that describes the syntax model for a LIMIT/OFFSET SQL clause.  Please see SQL::Abstract::Limit for more information.

  - •

    **limit**

    Scalar value that will be used for LIMIT argument in a query.

  - •

    **offset**

    Scalar value that will be used for OFFSET argument in a query.

  Any other attributes are passed to the SQL::Abstract::Limit constructor, and can be used to control how queries are created.  For example, to use 'AND' instead of 'OR' by default, use:

  ```
      $class->search_where(\%where, { logic => 'AND' });
  ```

## AUTHOR

Tatsuhiko Miyagawa \<miyagawa@bulknews.net\> with some help from cdbi-talk mailing list, especially:

```
  Tim Bunce
  Simon Wilcox
  Tony Bowden
```

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

## SEE ALSO

Class::DBI, SQL::Abstract, SQL::Abstract::Limit
