嗨只是一个简单的问题
我知道如何从一个表简单的MySQL问题 - MAX(field)?
SELECT MAX(field) FROM table
得到最经常性领域,但如何从表中获取的第二个最经常性领域?
谢谢。
嗨只是一个简单的问题
我知道如何从一个表简单的MySQL问题 - MAX(field)?
SELECT MAX(field) FROM table
得到最经常性领域,但如何从表中获取的第二个最经常性领域?
谢谢。
SELECT
field,
COUNT(*) as cnt
FROM table
GROUP BY field
ORDER BY cnt DESC
LIMIT 1, 1
这是正确的! – 2010-06-25 09:26:11
您可以使用LIMIT
来设置偏移量。
SELECT field FROM table ORDER BY field DESC LIMIT 1,1;
谢谢。这就说得通了。我会在一秒之内尝试! – 2010-06-25 08:05:25
定义(from about.com):限制是用来限制你的MySQL查询结果那些落在指定的范围内。您可以使用它显示第一个X数量的结果,或显示X - Y结果的范围。它表示为极限X,Y,并包含在查询结尾。 X是起点(记住第一条记录是0),Y是持续时间(显示多少条记录)。 也称为:范围导致 实例:
SELECT * FROM `your_table` LIMIT 0, 10
将显示从数据库中的第10个结果。
SELECT * FROM `your_table` LIMIT 5, 5
将显示记录6,7,8,9,和10
SELECT * FROM `your_table` ORDER BY 'FIELD' DESC LIMIT 1, 1
将显示第二个最经常记录
当在正确的领域订购 – Veger 2010-06-25 08:16:00
谢谢你的解释! – 2010-06-25 08:18:05
如果性能是对你至关重要的,这可以帮助避免排序:
SET @a := (SELECT MAX(field) FROM table);
SELECT MAX(field) FROM table WHERE field != @a;
作为替代方法,您可以在代码中存储@a值。
太棒了! 我不知道那个@syntax。 只是另一个小问题,但如果该字段是INT。 MAX()函数会追上较高的数字或最先发现的数字? 谢谢你Vitalii – 2010-06-25 09:00:10
谢谢你Vitalii! – 2010-06-25 09:30:07
等待一段时间...但如果该字段是INT,MAX(字段)将捕获较高的数字或找到最多? – 2010-06-25 09:02:26
'MAX()'找到最高的数字(即最大值)。 – 2010-06-25 09:04:30
有一个函数可以让最容易找到的东西? – 2010-06-25 09:20:32