【问题标题】:Finding the rank or index of some name in an array returned by query在查询返回的数组中查找某个名称的排名或索引
【发布时间】:2009-12-15 06:53:57
【问题描述】:

我正在触发一个查询,该查询返回至少 1000 行,其中包含名称、数量以及订单数量 desc。我想要该数组中某个名称的索引,我不知道该怎么做?

当我使用 Ruby 时,我使用 arr.index(name)+1 正确返回索引的方法。 但我想要一些 MySQL 查询,它只给我那个特定名称的数字。

【问题讨论】:

    标签: sql mysql ranking


    【解决方案1】:

    MySQL 中没有排名功能。最接近的方法是使用变量:

    SELECT t.*, 
           @rownum := @rownum + 1 AS rank
      FROM TABLE t, (SELECT @rownum := 0) r
    

    这将为您的输出添加一个名为 rank 的列,该列将是唯一的、递增的并从 1 开始。

    【讨论】:

    • 感谢它在我将上述查询更改为以下查询时有效。我所做的唯一更改是 @rownum = @rownum + 1 到 @rownum := @rownum + 1 SELECT t.*, @rownum := @rownum + 1 AS rank FROM tracking t, (SELECT @rownum := 0) r
    猜你喜欢
    • 1970-01-01
    • 2016-12-10
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多