0

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

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

在 CakePHP2 中,当有多个 order 参数时,它们必须作为 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'
)

有任何想法吗?解决?

4

1 回答 1

1

让它工作的方法,就是将order参数设置为字符串,不使用数组,然后就ok了,如下:

$this->paginate['order'] = 'FIND_IN_SET(Catalog.pseudonym_id, "197,109,687"), Catalog.catalog_type_id ASC, Edition.year ASC';
于 2012-11-12T10:25:27.680 回答