gpt4 book ai didi

ruby-on-rails - Postgres排序问题

转载 作者:行者123 更新时间:2023-11-29 12:34:17 25 4
gpt4 key购买 nike

我想按评分降序排列。它适用于 MySQL,但适用于 PostgreSQL。我得到了不同的结果。

您可以在此处查看问题:http://www.vinderhimlen.dk/konkurrencer

我的 Controller :

  def sort_column
Konkurrancer.column_names.include?(params[:sort]) ? params[:sort] : "rating"
end

def sort_direction
%w[desc asc].include?(params[:direction]) ? params[:direction] : "desc"
end

最佳答案

不确定您的问题到底是什么或它如何“不起作用”,因为您的问题中缺少详细信息。但至少有两个因素会影响排序,导致您在 MySQL 和 PostgreSQL 中得到不同的结果。

第一个是collation . In particular如果您正在玩 9.1 测试版。上次我安装了 MySQL(这是不久前的事,所以他们可能已经修复了这个问题),它默认将内容整理为 latin-1/swedish,而 PostgreSQL 则为 utf-8/english。

另一个是空值。如果没记错的话,MySQL 总是把它们放在最后。相比之下,PostgreSQL 始终将它们放在 btree 索引的末尾,因此在排序 asc 时将它们放在最后,而在排序 desc 时将它们放在第一位。您可以通过使用 nulls first/nulls last 进行订购来更改此行为.

在您的特定情况下,我的猜测是您希望按 rating desc nulls 最后排序,而不是将 null 放在最前面的默认行为。

关于ruby-on-rails - Postgres排序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6199706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com