php - CakePHP 2.3 如何使用 find_in_set 设置分页顺序

标签 php mysql cakephp cakephp-2.0

我想对一些数据进行分页并使用 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/

相关文章:

javascript - 使用ajax上传时如何回显值输入类型文本?

php - 如何确定我的 sql 查询是否为 Null?

php - 如何从大数据库中的文本中检测特定关键字?

PHP/MySQL : How to store Select results in array

mysql内连接查询运行缓慢

php - 在 CakePHP 中,覆盖 AppController 的 redirect() 以在 ajax 请求期间通过 json 响应 url

php - 命名约定上传的文件

Mysql YEAR 如何设置当前年份为默认值

php - cakePHP 3.0 HABTM关系保存数据

php - 如何在 cakephp 中获取 $_SESSION 值