Mysql 选择列a上最大的两行,其中列b=1

Mysql 选择列a上最大的两行,其中列b=1,mysql,max,Mysql,Max,如何获得列_a上2个最大数的完整行 其中列_b=1 尝试此操作(返回语法错误): SELECT*,最大(id)-(或列a)- 从桌子上 其中列_b='1' 限制2 谢谢。如果您可以使用LIMIT(正如您所做的那样),它非常简单,只需让MySQL来完成这项工作: SELECT MAX(id) as maxID, column_a, column_b, column_c FROM table WHERE column_c = '1'; SELECT * FROM table WHERE c

如何获得列_a上2个最大数的完整行 其中列_b=1

尝试此操作(返回语法错误):

SELECT*,最大(
id
)-(或列a)-
从桌子上
其中列_b='1'
限制2

谢谢。

如果您可以使用LIMIT(正如您所做的那样),它非常简单,只需让MySQL来完成这项工作:

SELECT MAX(id) as maxID, column_a, column_b, column_c 
FROM table 
WHERE column_c = '1';
SELECT
*

FROM
table

WHERE
column_b = '1'

ORDER BY
id DESC

LIMIT 2

一种选择是添加一个
ORDER BY子句,例如

SELECT t.*
  FROM table t
 WHERE t.column_b = '1'
 ORDER BY t.column_a DESC
LIMIT 2
这将得到两行,它们的
列a
值最大(“最大”)


(问题询问的是“a列上有两个最大的数字”,但OP查询没有对a列的任何引用。)

谢谢,LIMIT似乎没什么作用……只得到一行!?哎呀。是的,Max()只会带来一排。我的错误。谢谢-(注意:'column_a'是'id'…谢谢简单的解决方案是思考所需的最大值或最大值…谢谢你的答案也有效!它基本上与@spencer的易读性相同。。。