1

文档:https ://docs.bolt.cm/content-fetching#ordering-results

我正在尝试获取一组记录并根据两个字段对它们进行排序。为此,我创建了以下请求:

{% setcontent records = 'artists' where { gender: 'Male' } orderby 'surname, title ASC' %}

这在bolt.db用作数据库时工作正常,但在 MySQL 中却不行。我觉得我以前做过类似的事情,所以我想知道它是否与版本更改有关。此实现使用v1.6.5.

4

2 回答 2

1

好的,我可以通过快速修复来解决这个问题。

我所做的只是Storage.php稍微修改了文件。

private function getEscapedSortorder($name, $prefix = 'r')
{   
    // HACK: multiple sort columns
    if (strpos($name, ',') !== FALSE) {
        return $name;
    }
    // END HACK: multiple sort columns

    list ($name, $asc) = $this->getSortOrder($name);

    ...

在我的内容类型中,我现在可以定义sort: surname, title哪个会自动执行ASC订单,或者我可以执行sort: surname DESC, title ASC或任何 SQL 真正允许的操作。

这可以很容易地修改为处理-surname, -title等。

于 2014-11-22T11:53:26.743 回答
-1

我没有对此进行测试,但 MySQL 的常用语法是:

order  surname ASC, title ASC

尝试将 orderby 字符串调整为相同的格式,看看是否可以完成这项工作。

于 2014-10-16T15:06:37.467 回答