[Cascavel-pm] DBIX::Class Dúvida sobre operadores AND/OR
Merlin, the Mage
merlin em camelot.co.pt
Quarta Julho 16 10:28:37 PDT 2008
On Wednesday 16 July 2008 16:50:49 Márcio Vitor wrote:
> Hello mongers
> Estou com uma dúvida ao fazer um search com o dbix-class que é a seguinte:
> Estou fazendo uma busca no banco de dados onde repasso a seguinte
> estrutura de dados para o search:
> my $search_fields = [
> {
> 'nome' => [
> {
> '-like' => '%uma%'
> },
> {
> '-like' => '%banda%'
> },
> {
> '-like' => '%diferente%'
> }
> ],
> 'processo_id' => '3256221'
> }
> ];
>
> my $search_results =
> [$c->model('DB')->resultset('Produto')->search(\$search_fields,{rows
> => 10,page => $page})];
>
> Isto reproduz uma query com o seguinte 'WHERE':
> WHERE ( ( ( ( nome LIKE ? ) OR ( nome LIKE ? ) OR ( nome LIKE ? ) )
> AND processo_id = ? ) )
>
> Só que na verdade ao invés de usar o operador 'OR' eu quero usar o 'AND'.
> Acredito que seja simples resolver isto, mas não encontrei material
> dizendo específicamente sobre estes operadores, qualquer material para
> leitura também é bem vindo.
>
> Obrigado
> Márcio Vitor
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
oix,
Não comentando o DBIx e afins... mas uma query deste tipo não deveria ser
feito com o Match? Do genero:
WHERE MATCH(nome) AGAINST(uma banda diferente)
Nota: como o "uma" só tem três letras não é indexado, e consequêntemente
ignorado no MATCH, mas a query é bem mais rápida, e acredito que um uma
também não é muito relevante.
mpneves
--
http://www.avidmind.net
http://www.webaserio.com
http://www.sites-favoritos.com
Mais detalhes sobre a lista de discussão Cascavel-pm