这是我的序列号表的精简副本。
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
答案 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