MySQL子查询,获取2个最近的行类型

时间:2017-07-06 13:04:24

标签: php mysql subquery

我试图获取每种类型的两个最新行。

ID  TYPE    SCORE
-----------------
1   EUR       2
2   EUR       3
3   CAD       5
4   CAD       6
5   CAD       7
6   CAD       8
7   USD       5
8   USD       3
9   USD       7
10  USD       2

返回的结果应为id:1,2,5,6,9,10。

如何使用mysql子查询完成此操作?我试过下面..

$sql = "SELECT * FROM `data_analysis_child`
        WHERE type IN 
    (SELECT type FROM `data_analysis_child` ORDER by id DESC LIMIT 2)";

$query = $this->db->query($sql);

我如何解决?

1 个答案:

答案 0 :(得分:0)

你可以试试这个。

   select * from 
(SELECT  t.*,@row_num := IF(@TYPE1=type,@row_num+1,1)AS RowNumber,@TYPE1=type  FROM data_analysis_child t, (SELECT @row_num := 1) x,(SELECT @TYPE1 := '') y
order by type desc,id desc) where RowNumber<=2