我想对一些数据进行分页并使用FIND_IN_SET对其进行排序。如果只有一个参数,则可以像这样设置顺序:

$this->paginate['order'] = 'FIND_IN_SET(Catalog.pseudonym_id, "197,109,687")';


在CakePHP2中,当有一个以上的订单参数时,必须将它们作为键=>值输入。如何使用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/

10-10 23:42