Fala Italo,

Sugiro que vc dê uma habilitada no DBIC_TRACE para ver a saída antes de
tudo...

Não consigo simular o seu cenário mas testei com um banco meu e em outro
contexto e...

->search({ email => {-rlike => 'foo@.*'} })->single;
Query: SELECT me.id, me.name, me.email, me.password, me.active, me.change,
me.token, me.last_access, me.updated, me.created FROM user me WHERE ( email
RLIKE ? ): 'foo@.*'

Isso me diz que aparentemente sua query com -rlike esta OK

Você também pode fazer o seguinte:

->search({ email => \["RLIKE 'foo@.*'"] })->single;
Query: SELECT me.id, me.name, me.email, me.password, me.active, me.change,
me.token, me.last_access, me.updated, me.created FROM user me WHERE ( email
RLIKE 'foo@.*' ):


Abs,




*Daniel Vinciguerra*
Web Solutions Architect and founder at Bivee
Cel: +55 (47) 9270-6171

*ATENÇÃO/ATTENTION:*
Este e-mail contém informações confidenciais e seu conteúdo é dirigido ao
uso do indivíduo ou da entidade mencionados acima. Se você recebeu esta
mensagem por engano, por favor, notifique o remetente e remova-o
imediatamente.


This e-mail contains confidential information intended only for the use of
the individual or entity named above. If you are not the intended
recipient, please notify the sender and delete it immediately.

2015-09-30 8:38 GMT-03:00 Italo Gonçales <italo.gonca...@gmail.com>:

> Bom dia!
>
> Estou migrando uma aplicação java stand alone para WebService usando
> Catalyst e MySQL, quando me deparei com um caso atípico do meu dia a dia. A
> antiga base de dado ( em txt ) da aplicação java possui expressões
> regulares nas chaves que estou utilizando para a busca ( e que é a única
> que eu tenho ).
>
> Gostaria de saber se há alguma maneira de buscar um valor que corresponda
> à regex armazenada no banco de dados?
>
> Testei pelo MySQL e funcionou, mas não consigo fazer o mesmo select no
> perl.
>
> Segue busca de exemplo:
>
> mysql> SELECT * FROM card where '3B45978551FE119864' RLIKE atr;
>
> +----------------------------------+----------------------------------------+
> | atr                                      | name
>               |
>
> +-----------------------------------+---------------------------------------+
> | 3B[0-9]{4}8551FE119864  | S12-468                                  |
>
> Tentei usar o search_like, search com '-rlike' e search com '-like', mas
> nada funcionou. Tentei inverter na query do search também, mas não deu
> muito certo.
>
> Tentativas:
> $card_rs->search({ atr => { -like => $atr } })->single;
>
> $card_rs->search({ atr => { -rlike => $atr } })->single;
>
> $card_rs->search({ $atr => { -rlike => atr } })->single;
>
> Gostaria de saber se há alguma outra maneira de fazer essa busca no perl.
>
> Obrigado!
>
> --
>
> Att,
>
> Italo Gonçales
> Perl Developer at Morpho
> +55 12 98134 0318
>
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
=begin disclaimer
   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
 SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
 L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer

Responder a