我想对一些数据进行分页并使用 FIND_IN_SET 对它们进行排序。如果只有一个参数,则可以按如下方式设置顺序:
$this->paginate['order'] = 'FIND_IN_SET(Catalog.pseudonym_id, "197,109,687")';
在 CakePHP2 中,当订单参数超过一个时,必须以 key => value 的形式输入。如何使用 FIND_IN_SET 来完成此操作?以下内容不起作用
array(
(int) 0 => 'FIND_IN_SET(Catalog.pseudonym_id, "197,109,687")',
'Catalog.catalog_type_id' => 'ASC',
'Edition.year' => 'asc'
)
array(
'FIND_IN_SET' => '(Catalog.pseudonym_id, "197,109,687")',
'Catalog.catalog_type_id' => 'ASC',
'Edition.year' => 'asc'
)
array(
'FIND_IN_SET (Catalog.pseudonym_id, "197,109,687")' => 'ASC',
'Catalog.catalog_type_id' => 'ASC',
'Edition.year' => 'asc'
)
有什么想法吗?解决办法吗?
最佳答案
让它工作的方法是将订单参数设置为字符串而不是使用数组,然后就可以了,如下所示:
$this->paginate['order'] = 'FIND_IN_SET(Catalog.pseudonym_id, "197,109,687"), Catalog.catalog_type_id ASC, Edition.year ASC';
关于php - CakePHP 2.3 如何使用 find_in_set 设置分页顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13326764/