代码之家  ›  专栏  ›  技术社区  ›  Nicolo' Verrini

简单mysql问题-max(field)?

  •  2
  • Nicolo' Verrini  · 技术社区  · 14 年前

    嗨,只是个简单的问题
    我知道如何从表中获取最经常出现的字段

    SELECT MAX(field) FROM table
    

    但是如何从表中获取第二个最经常出现的字段呢?

    谢谢您。

    4 回复  |  直到 14 年前
        1
  •  0
  •   simendsjo    14 年前
    SELECT
        field,
        COUNT(*) as cnt
    FROM table
    GROUP BY field
    ORDER BY cnt DESC
    LIMIT 1, 1
    
        2
  •  5
  •   Daniel Egeberg    14 年前

    你可以用 LIMIT 设置偏移。

     SELECT field FROM table ORDER BY field DESC LIMIT 1,1;
    
        3
  •  2
  •   Vitalii Fedorenko    14 年前

    如果性能对您至关重要,这有助于避免排序:

    SET @a := (SELECT MAX(field) FROM table);
    SELECT MAX(field) FROM table WHERE field != @a;
    

    另外,您可以将@a值存储在代码中。

        4
  •  1
  •   Thariama    14 年前

    定义(定义) from about.com ):limit用于将MySQL查询结果限制在指定范围内。您可以使用它来显示结果的前x个数,或者显示x-y结果的范围。它的措词为极限x,y,并包含在查询的末尾。x是起点(记住第一条记录是0),y是持续时间(要显示多少条记录)。 也称为:范围结果 实例:

     SELECT * FROM `your_table` LIMIT 0, 10 
    

    将显示数据库中的前10个结果。

     SELECT * FROM `your_table` LIMIT 5, 5 
    

    将显示记录6、7、8、9和10

     SELECT * FROM `your_table` ORDER BY 'FIELD' DESC LIMIT 1, 1 
    

    将显示第二个最重复的记录