我想检查最后3行 - 按ID DESC排序 - 为相同的值。
ID | Value
----------
52 | 20
51 | 20
50 | 20
49 | 34
48 | 72
47 | 12
46 | 19
45 | 55
44 | 8
例如,在我上面的架构中,如果相同的3
为TRUE
,我希望获得Value
或20
。
我试过了:
SELECT Value FROM mytable WHERE Value = '20' GROUP BY Value ORDER BY ID DESC LIMIT 3;
但它没有用,我得到所有的价值,好像LIMIT不起作用。
答案 0 :(得分:1)
请删除分组并运行以下查询:
SELECT * FROM (SELECT Value, ID FROM test1 ORDER BY ID DESC LIMIT 3) AS A WHERE Value = '20';
答案 1 :(得分:1)
SELECT IF(COUNT(*) = 3, 'TRUE', 'FALSE') FROM (
SELECT
*
FROM
your_table
ORDER BY ID DESC
LIMIT 3
) sq
WHERE Value = 20;
答案 2 :(得分:0)
select tb.value from mytable tb where tb.id <= ((select min(id) from mytable)+2)
这只有在您确定您的身份证的值每次都是上一个/下一个身份
的情况下才有效或者这个
select tb.value from mytable tb
where rownum >=(select(max(rownum) from mytable)-2)
order by tb.id desc