Zend framework2 我可以将字符串传递给Zend sql';s阶函数?
我正在编写一个复杂的搜索算法,可以分层搜索。对于其中两层,我需要非常奇怪的order子句,Zend的sql builder根本无法处理这些子句。有没有一种方法可以告诉Zend只向ORDERBY子句添加一个字符串,而不尝试解释和破坏它 对于那些想知道的人,我的订单的一个例子是Zend framework2 我可以将字符串传递给Zend sql';s阶函数?,zend-framework2,zend-db-select,Zend Framework2,Zend Db Select,我正在编写一个复杂的搜索算法,可以分层搜索。对于其中两层,我需要非常奇怪的order子句,Zend的sql builder根本无法处理这些子句。有没有一种方法可以告诉Zend只向ORDERBY子句添加一个字符串,而不尝试解释和破坏它 对于那些想知道的人,我的订单的一个例子是 IF(名称像“1234%”或名称像“%1234%”或名称像“%1234%”或代码像“1234%”或代码像“%1234%”或代码像“%1234”、1、0)+IF(名称像“ASF%”或名称像“%ASF%”或名称像“%ASF%”或
IF(名称像“1234%”或名称像“%1234%”或名称像“%1234%”或代码像“1234%”或代码像“%1234%”或代码像“%1234”、1、0)+IF(名称像“ASF%”或名称像“%ASF%”或名称像“%ASF%”或代码像“ASF%”或代码像“%ASF%”,1、0)
它基本上统计当前记录包含的搜索字符串中的字数,并以此排序
我想做这样的事情
$sql = new Sql($this->adapter);
$select = $sql->select();
$select->from('Table');
$select->where($where);
$select->order($orderString);
如果
order by
子句的参数是纯字符串,则将考虑它
仅作为列名(后跟或不后跟“ASC”或“DESC”)
一种可能的解决方案是使用表达式
类。大概是这样的:
$select->order(array(new \Zend\Db\Sql\Expression($orderString)));
希望这有帮助