从mysql获取最后的记录

时间:2013-03-19 15:01:07

标签: php mysql sql codeigniter

我有一个存储结构的表

id name group_id
1 ABC   1
2 DEF   1
3 GHi   1
4 jkl   2
5 mno   2
6 pqr   2
7 stu   3
8 vwx   3
9 yz0   3

我想通过最后一个group_id获取记录,在上面的示例中,3并不总是相同,所以首先我必须使用另一个查询获取最后一个组ID:

Selct * FROM records ORDER BY group_ID DESC LIMIT 1;
// so here it gets last group-id which is 3

所以我再次执行另一个查询来获取那些带有最后一个id

的记录
// $id = 3 // from above records
Select * From records where group_id = $id

有没有更好的方法使用单个mysql查询?我正在使用codeigniter活动记录。 感谢

2 个答案:

答案 0 :(得分:4)

试试这个:

SELECT * 
FROM records 
WHERE group_ID  = (SELECT MAX(group_ID ) 
                   FROM records);

SQL Fiddle Demo

这会给你:

| ID | NAME | GROUP_ID |
------------------------
|  7 |  stu |        3 |
|  8 |  vwx |        3 |
|  9 |  yz0 |        3 |

答案 1 :(得分:2)

 SELECT x.*
   FROM my_table x
   JOIN 
      ( SELECT MAX(group_id) max_group_id FROM my_table ) y
     ON y.max_group_id = x.group_id;