使用 LIMIT 函数显示第 1、2 和 3 行,MAX 客户评分使用 MySQL

Using the LIMIT function to display the 1st, 2nd and 3rd row, with the MAX customer rating using MySQL

我需要在 table 中显示客户评价最高的第一、第二和第三个名字。我创建了以下查询:

此查询显示 table、

中的第一个、第二个和第三个名称
SELECT *
FROM donuts
WHERE customer_rating
LIMIT 1,3;

我尝试使用 MAX 函数获得 3 个最高的客户评分,但我得到的是空白 table。

SELECT MAX(customer_rating), donutName
FROM donuts
WHERE customer_rating
LIMIT 1,3;

任何建议,

使用ORDER BY

SELECT *
FROM donuts
ORDER BY customer_rating DESC
LIMIT 0, 3

你得到空结果的原因是因为 LIMIT 1, 3 打印了第二、第三和第四项,而不是第一、第二和第三项,因为 LIMIT 是从零开始的 (与 SQL 中的几乎所有其他内容不同)。但是当你使用像 MAX() 这样的聚合函数时,你只会得到一行结果(所有结果组合成一个最大值),所以没有第二个条目。