Zend framework2 zf2如何选择类似大写字母的位置

Zend framework2 zf2如何选择类似大写字母的位置,zend-framework2,Zend Framework2,我正试图从我的数据库中获取一些标题。但它不起作用: $select->where->like('LOWER(title)','%'.$search_by.'%'); 如果不降低成本,它工作得很好 $select->where->like('title','%'.$search_by.'%'); 但我需要小写 like()似乎只接受标识符作为其第一个参数 你应该试试这个 $select->where->literal('LOWER(title) LIKE "

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

$select->where->like('LOWER(title)','%'.$search_by.'%');
如果不降低成本,它工作得很好

$select->where->like('title','%'.$search_by.'%');
但我需要小写

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

你应该试试这个

$select->where->literal('LOWER(title) LIKE "%'.$search_by.'%"');
// or
$select->where->expression('LOWER(title) LIKE ?', '%'.$search_by.'%');
like()
似乎只接受标识符作为其第一个参数

你应该试试这个

$select->where->literal('LOWER(title) LIKE "%'.$search_by.'%"');
// or
$select->where->expression('LOWER(title) LIKE ?', '%'.$search_by.'%');
我为搜索以下内容的人找到了一个解决方案(在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语句。

我为搜索以下内容的人找到了一个解决方案(在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语句。

您的DB表是否使用区分大小写的排序规则?如果不是,则不需要小写!数据库表是否使用区分大小写的排序规则?如果不是,则不需要小写!