[Rt-devel] DBIx::SearchBuilder - Limit by multiple fields using
OR clause
Jesse Vincent
jesse at bestpractical.com
Thu Sep 23 02:59:46 EDT 2004
On Thu, Sep 23, 2004 at 08:53:41AM +0200, Miroslav Laus wrote:
> Hello,
>
> I found DBIx::Searchbuilder is using the ENTRYAGGREGATOR 'OR' only when
> limiting to the same field multiple times. Let's say if I want to Limit the
> Users table by Name or RealName a can't make it to use OR clause. It still uses
> AND and it seems to me it cannot be changed without changing the
> DBIx::SearchBuilder.
use SUBCLAUSE => 'mysubclause' in your Limit statements to get both
entries into the same subclause.
-jesse
>
> For example this code:
>
> my $UsersObj = new RT::Users($self->CurrentUser);
> $UsersObj->Limit(
> FIELD => 'Name',
> VALUE => 'something',
> OPERATOR => 'LIKE'
> );
>
> $UsersObj->Limit(
> FIELD => 'RealName',
> VALUE => 'something',
> OPERATOR => 'LIKE',
> ENTRYAGGREGATOR => 'OR'
> );
>
> produces this query:
>
> SELECT * FROM Users main WHERE ( ((main.Disabled = 0)) AND ((main.Name LIKE
> '%something%')) AND ((main.RealName LIKE '%SOMETHING%')) )
>
> but I want it this way:
>
> SELECT * FROM Users main WHERE ( ((main.Disabled = 0)) AND ((main.Name LIKE
> '%something%') OR (main.RealName LIKE '%SOMETHING%')) )
>
> Can this be achieved via some documented way?
>
> --
> Greets,
>
> Miroslav Laus, DiS
> Senior technician, Operations Management Center
> --
> Karneval Media s.r.o.
> U svobodarny 5/1500
> 190 00 Praha 9
> Czech republic
> tel: +420 2 8408 5354
> fax: +420 2 8408 5817
> mob: +420 724 608 011
> e-mail: laus at karneval.cz
> http://www.karneval.cz
>
> _______________________________________________
> Rt-devel mailing list
> Rt-devel at lists.bestpractical.com
> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-devel
>
--
More information about the Rt-devel
mailing list