【发布时间】:2014-11-25 08:38:33
【问题描述】:
我正在编写一个复杂的搜索算法,它按层进行搜索。对于其中的两个层,我需要 Zend 的 sql 构建器根本无法处理的非常奇怪的 order 子句。有没有办法告诉 Zend 只在 order by 子句中添加一个字符串而不试图解释和破坏它?
对于那些想知道的人,我的订单示例是
IF(Name LIKE '1234 %' OR Name LIKE '% 1234 %' OR Name LIKE '% 1234' OR Code LIKE '1234 %' OR Code LIKE '% 1234 %' OR Code LIKE '% 1234', 1, 0) + IF(Name LIKE 'ASF %' OR Name LIKE '% ASF %' OR Name LIKE '% ASF' OR Code LIKE 'ASF %' OR Code LIKE '% ASF %' OR Code LIKE '% ASF', 1, 0)
它基本上计算当前记录包含的搜索字符串中的单词数并按此排序。
我想做这样的事情
$sql = new Sql($this->adapter);
$select = $sql->select();
$select->from('Table');
$select->where($where);
$select->order($orderString);
【问题讨论】:
标签: zend-framework2 zend-db-select