0

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

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

没有 LOWER 它工作正常。

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

但我需要小写。

4

2 回答 2

3

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

你应该试试这个

$select->where->literal('LOWER(title) LIKE "%'.$search_by.'%"');
// or
$select->where->expression('LOWER(title) LIKE ?', '%'.$search_by.'%');
于 2013-08-30T12:40:45.470 回答
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 语句。

于 2019-08-27T08:56:20.710 回答