返回3个序列号列表的最新记录

时间:2014-10-15 05:42:59

标签: mysql

这是我的序列号表的精简副本。

id            serial number
---------------------------
1064    1012507994
1065    1012507994
1067    1019527101
1436    1012507994
1437    1012507994
1438    1012507994
1439    1012507994
1464    1019527101
1465    1019527101

每次我向该表添加另一条记录时,id都会递增。 我希望能够传入一个serial_numbers列表,并为我传入的每个序列号获取最后3个id。我知道如何返回最后3个id用于一个序列号,但我可以&#39 ;现在想出一个序列号列表的最后3个id。

例如:我想获取(12507994,19527101)序列号的最后(最近)3条记录 结果应该是

1439    12507994
1438    12507994
1437    12507994
1067    19527101
1464    19527101
1465    19527101

2 个答案:

答案 0 :(得分:1)

你需要  1.选择最后2个序列号。  2.选择此数字的最后3条记录

SELECT   * 
FROM you_table
WHERE SERIAL number IN 
  (SELECT serial_number FROM you_table ORDER BY id DESC LIMIT 1, 1) 
LIMIT 0, 3 
UNION
SELECT * 
FROM you_table
WHERE SERIAL number IN 
  (SELECT serial_number FROM you_table ORDER BY id DESC LIMIT 0, 1) 
LIMIT 0, 3 

答案 1 :(得分:0)

最简单的方法是使用UNION:

SELECT * FROM your_table WHERE serial_number = '12507994' ORDER BY id DESC LIMIT 0,3
UNION
SELECT * FROM your_table WHERE serial_number = '19527101' ORDER BY id DESC LIMIT 0,3