mysql选择问题

时间:2012-03-12 08:13:44

标签: mysql

我有一个名为items的表。在此表中有许多列。其中一列称为“源”。我想做的是从表中选择记录。我想选择最新的5条记录,条件是“源”列都是不同的。

我尝试了以下内容:

SELECT DISTINCT SOURCE from items order by time DESC LIMIT 5

但我需要整个记录而不仅仅是来源,当我尝试包含更多列时,它不起作用。

我试过了:

SELECT * FROM items  WHERE item_section='sp_500'   GROUP BY source  ORDER BY time DESC    LIMIT 3

但它没有给我最新的记录

4 个答案:

答案 0 :(得分:2)

棘手。

试试这个。

SELECT items.* 
  FROM items
  INNER JOIN 
    (SELECT source, max(time) maxtime
       FROM bbc
       GROUP BY source
       ORDER BY max(time) DESC
       LIMIT 5
    ) s
ON items.source = s.source and items.time = maxtime

答案 1 :(得分:0)

这样做:

SELECT * FROM items WHERE source IN (
    SELECT DISTINCT source FROM items ORDER BY time DESC LIMIT 5
)

答案 2 :(得分:0)

试试这个

SELECT * FROM items as itm,(SELECT pk,DISTINCT source as src FROM items ORDER BY time DESC LIMIT 5) as temp  WHERE itm.pk = temp.pk 

其中pk是您的主键

答案 3 :(得分:0)

为了保证选择最新的五条记录,我建议您添加一个名为"created"的新列,并在其中插入记录创建的time()

示例:

Insert into items values(ID,SOURCE, CREATED )

选择最新的五条记录时,您可以这样做:

SELECT source, Max(created) FROM items GROUP By created LIMIT 5