parênteses

10 views
Skip to first unread message

Cello Zero

unread,
Oct 23, 2013, 8:41:01 AM10/23/13
to kohan...@googlegroups.com
Estou usando o kohana 3.0.9 já que não consegui tempo de me adaptar ao 3.3 ainda, e me surgiu uma dúvida:
usando DB, como posso colocar parênteses nas partes de where? 

$query = DB::select()->from('arquivos')
->where('folder1', '=', $tipo)
->and_where('file', 'like', '%'.$keywords.'%')
->where('folder2', 'like', '%'.$keywords.'%')
->or_where('folder3', 'like', '%'.$keywords.'%')
->or_where('folder4', 'like', '%'.$keywords.'%')
->or_where('folder5', 'like', '%'.$keywords.'%');

E a consulta me retorna o seguinte

SELECT * FROM `arquivos` WHERE `folder1` = 'campanhas' AND `file` LIKE '%cafe%' OR `folder2` LIKE '%cafe%' OR `folder3` LIKE '%cafe%' OR `folder4` LIKE '%cafe%' OR `folder5` LIKE '%cafe%'

Quando na verdade eu precisava de 

SELECT * FROM `arquivos` WHERE `folder1` = 'campanhas' AND `file` LIKE '%cafe%' OR (`folder2` LIKE '%cafe%' OR `folder3` LIKE '%cafe%' OR `folder4` LIKE '%cafe%' OR `folder5` LIKE '%cafe%')

Alguém tem uma luz?

Obrigado!

Douglas J.A.M

unread,
Oct 23, 2013, 8:42:49 AM10/23/13
to kohan...@googlegroups.com
da uma fuçada e descubra sobre 

->or_where_open()
....
->or_where_close()



--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para kohana-php+...@googlegroups.com.
Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/kohana-php.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

Cello Zero

unread,
Oct 23, 2013, 9:16:42 AM10/23/13
to kohan...@googlegroups.com
Valeu!! Deu certinho, obrigado =)


2013/10/23 Douglas J.A.M <dougl...@gmail.com>

felipe bastos

unread,
Oct 23, 2013, 12:26:37 PM10/23/13
to kohan...@googlegroups.com
Desculpe,

Embora tenha achado a nova função interessante ...

O que aconteceu com o DB:expr() ? Continua lá?

Como não usou nenhuma Função SQL especifica de SGBD, talvez fosse mais
interessante expresar esse OR como SQL.

Em 23/10/13, Cello Zero<twinkl...@gmail.com> escreveu:
http://agilesocial.net
http://twitter.com/felipebastosweb
http://facebook.com/felipebastosweb

Cello Zero

unread,
Oct 23, 2013, 12:36:56 PM10/23/13
to kohan...@googlegroups.com
Pelo menos no 3.0.9 que eu ainda estou usando está lá... 
Achei interessante mesmo, pq eu só sabia da ->parenthesisStart() do kohana 2.x pra fazer a mesma coisa


2013/10/23 felipe bastos <feli...@gmail.com>

Douglas J.A.M

unread,
Oct 23, 2013, 12:39:10 PM10/23/13
to kohan...@googlegroups.com
O db::expr continua lá, é caso de preferencia né, e gosto não se discute.
Reply all
Reply to author
Forward
0 new messages