代码之家  ›  专栏  ›  技术社区  ›  Carol.Kar

获取最近9个事件

  •  1
  • Carol.Kar  · 技术社区  · 7 年前

    | post_id | price | created_at          |
    |---------|-------|---------------------|
    | 10      | 3.5   | 2018-06-18 07:36:34 |
    | 11      | 4.8   | 2018-06-17 07:36:34 |
    | 10      | 5     | 2018-06-16 07:36:34 |
    | 10      | 5     | 2018-06-15 07:36:34 |
    | 6       | 3.6   | 2018-06-12 07:36:34 |
    | 10      | 2     | 2018-06-14 07:36:34 |
    | 10      | 6     | 2018-06-13 07:36:34 |
    | 10      | 9     | 2018-06-12 07:36:34 |
    | 10      | 4     | 2018-06-11 07:36:34 |
    | 10      | 3.6   | 2018-06-09 07:36:34 |
    

    10

    | post_id | price | created_at          |
    |---------|-------|---------------------|
    | 10      | 3.5   | 2018-06-18 07:36:34 |
    | 10      | 5     | 2018-06-16 07:36:34 |
    | 10      | 5     | 2018-06-15 07:36:34 |
    | 10      | 2     | 2018-06-14 07:36:34 |
    | 10      | 6     | 2018-06-13 07:36:34 |
    | 10      | 9     | 2018-06-12 07:36:34 |
    

    我知道如何选择正确的帖子ID,但我很难从今天的日期中选择最后6个事件:

    SELECT * FROM product where post_id = 10 
    

    3 回复  |  直到 7 年前
        1
  •  5
  •   Martijn    7 年前

    你可以这样做:

    SELECT * FROM product 
    WHERE post_id = 10 
    ORDER BY created_at DESC 
    LIMIT 6
    

        2
  •  1
  •   Jérémy    7 年前

    使用 LIMIT

    SELECT * FROM product WHERE post_id = 10 LIMIT 6
    

    ORDER BY

    SELECT * FROM product WHERE post_id = 10 ORDER BY created_at DESC LIMIT 6
    
        3
  •  1
  •   Matt    7 年前

    使用 DATE_ADD(CURDATE(), INTERVAL -6 DAY)

    SELECT * 
    FROM product 
    WHERE post_id = 10 
    AND created_at >= DATE_ADD(CURDATE(), INTERVAL -6 DAY)
    

    post_id price   created_at
    10      3.5     2018-06-18 07:36:34
    10      5       2018-06-16 07:36:34
    10      5       2018-06-15 07:36:34
    10      2       2018-06-14 07:36:34
    10      6       2018-06-13 07:36:34
    10      9       2018-06-12 07:36:34
    

    SQL小提琴: http://sqlfiddle.com/#!9/3c36fc/1/0