0

一部のデータをページ分割し、FIND_IN_SET を使用して並べ替えたいと思います。パラメータが 1 つしかない場合は、次のように順序を設定して機能します。

$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'
)

何か案は?回避しますか?

4

1 に答える 1

1

それを機能させる方法は、配列を使用せずに順序パラメーターを文字列として設定することです。その後、次のように問題ありません。

$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 に答える