如何在mysql中获得第二高和第二低的值?

如何在mysql中获得第二高和第二低的值?,mysql,phpmyadmin,subquery,Mysql,Phpmyadmin,Subquery,如何获得低于最高值的所有值。i、 e第二高、第三高等等 我想选择id=14和12。条件是第二和第三高的id值,其中节='abc' 我的查询是这样的:从tbl_front_post中选择id,其中id在select id from tbl_front_post中,其中id

如何获得低于最高值的所有值。i、 e第二高、第三高等等

我想选择id=14和12。条件是第二和第三高的id值,其中节='abc'

我的查询是这样的:从tbl_front_post中选择id,其中id在select id from tbl_front_post中,其中id
注意:我无法写入id=15,因此id=maxid-1,因为id可能随时更改

使用子查询查找最大值:

select id
from tbl_front_post
where id < (SELECT MAX(id) from tbl_front_post where section = 'abc') and
      section = 'abc'
-- order by id desc
-- limit 2     -- for 2nd and 3rd, or however many results you want

如果id列仅对每个部分具有唯一的值,那么这将非常有效。在这种情况下,我们不必担心最大id的关系。

使用子查询查找最大值:

select id
from tbl_front_post
where id < (SELECT MAX(id) from tbl_front_post where section = 'abc') and
      section = 'abc'
-- order by id desc
-- limit 2     -- for 2nd and 3rd, or however many results you want
如果id列仅对每个部分具有唯一的值,那么这将非常有效。在这种情况下,我们不必担心最大id的关系。

您可以使用ORDER BY和LIMIT来完成此操作

SELECT id
FROM tbl_front_post
WHERE section = 'abc'
ORDER BY id DESC
LIMIT 2, 2
限制x,y表示从订单中的x行开始返回y行。

您可以使用order BY和LIMIT来执行此操作

SELECT id
FROM tbl_front_post
WHERE section = 'abc'
ORDER BY id DESC
LIMIT 2, 2
限制x,y意味着从x行开始按顺序返回y行。

尝试如下操作:

SELECT * FROM tbl_front_post
WHERE section = 'abc' order by id desc LIMIT 1, 18446744073709551615;
这将为您提供section=abc的所有行,但从第一行到最后一行除外

注意:18446744073709551615只是一个大数字,表示希望所有行都结束;:

检索从某个偏移量到 结果集,您可以使用一些大的数字作为第二个参数

试着这样做:

SELECT * FROM tbl_front_post
WHERE section = 'abc' order by id desc LIMIT 1, 18446744073709551615;
这将为您提供section=abc的所有行,但从第一行到最后一行除外

注意:18446744073709551615只是一个大数字,表示希望所有行都结束;:

检索从某个偏移量到 结果集,您可以使用一些大的数字作为第二个参数


我需要第二高和第三高,所以我需要第二高和第三高,等等。限额不应该是18446744073709551615;除了endnice想法的第一行,但是可以有任意数量的行。。现在有3行具有section='abc'。但行数可以随时更改。限制是否应为11844744073709551615;除了endnice想法的第一行,但是可以有任意数量的行。。现在有3行具有section='abc'。但行数可以随时更改。为什么是负号?为什么是负号?