0

如何获得这样的SQL

select * from foo where LOWER(foo_name) like '%test%'; 

我知道我可以做到这一点:

select * from foo where LOWER(foo_name) = 'test';

经过:

$where->addPredicate(new Predicate\Expression('LOWER(foo_name) = ?', 'test' ));

还有这个:

 select * from foo where foo_name like '%test%';

经过:

$where->addPredicate( new \Zend\Db\Sql\Predicate\Like('LOWER(foo_name)', '%test%'));

但是如何将两者结合起来

4

2 回答 2

2

@dave 给出的答案很好。

即使这样也有效 -

$where->expression("LOWER(title) LIKE ?", '%test%');
于 2014-07-08T08:49:23.280 回答
1

可能不理想,但你可以做字面意思:

$where->literal("LOWER(foo_name) LIKE '%test%'");
于 2014-07-08T00:34:08.940 回答