zf2如何选择大写的地方

时间:2013-08-29 10:07:39

标签: zend-framework2

我试图从我的数据库中获取一些标题。但它不起作用:

$select->where->like('LOWER(title)','%'.$search_by.'%');

没有LOWER它工作正常。

$select->where->like('title','%'.$search_by.'%');

但我需要LOWER案例。

2 个答案:

答案 0 :(得分:3)

like()似乎只接受标识符作为其第一个参数。

你应该试试这个

$select->where->literal('LOWER(title) LIKE "%'.$search_by.'%"');
// or
$select->where->expression('LOWER(title) LIKE ?', '%'.$search_by.'%');

答案 1 :(得分:0)

我在(ZF3)中找到了一个针对以下人员的解决方案:

use Zend\Db\Sql\Expression;
$upperExpr = new Expression('LOWER(?)', [title], [Expression::TYPE_IDENTIFIER]);
$select->where->like($upperExpr, "%" . mb_strtolower($search_by, 'UTF-8') . "%");

或者如果没有'äÄööüüÜ',则只有 strtolower();)

这将创建正确的SQL语句。