Mysql 如何在查询中获得第二个更高的数字
例如,假设我有一个与下一个类似的表:Mysql 如何在查询中获得第二个更高的数字,mysql,Mysql,例如,假设我有一个与下一个类似的表: id | start | userId 1 3 1 2 2 2 3 5 1 现在,我想获取与某个userId相关的列start的第二个较高值的所有行信息。因此,如果userId等于1我希望得到下一个结果: (id, start, userId) = (1,3,1) 我尝试了以下查询: SELECT id, max(start) FROM table_user WHERE userId =
id | start | userId
1 3 1
2 2 2
3 5 1
现在,我想获取与某个userId
相关的列start
的第二个较高值的所有行信息。因此,如果userId
等于1
我希望得到下一个结果:
(id, start, userId) = (1,3,1)
我尝试了以下查询:
SELECT id, max(start) FROM table_user WHERE userId = 1;
但是这给了我一个更高的数字。您可以通过按列排序
开始
和限制
的功能轻松做到这一点,如下所示:
SELECT
*
FROM
table_user
WHERE
userId = 1
ORDER BY
`start` DESC LIMIT 1, 1
您也可以在线查看此信息:您可以通过按列排序
开始
和限制
的功能轻松完成此操作,如下所示:
SELECT
*
FROM
table_user
WHERE
userId = 1
ORDER BY
`start` DESC LIMIT 1, 1
您也可以在线检查:但我需要按用户进行筛选,但我需要按用户进行筛选您的查询甚至不是有效的SQL..我使用它没有问题是的,因为MySQL扩展了
groupby
功能请尝试使用SET SESSION SQL\u mode=(选择CONCAT(@@SQL\u mode',仅“FULL\u GROUP\u by”)
然后看什么..您的查询甚至不是有效的SQL..我使用它没有问题是的,因为MySQL扩展了分组方式
功能,请尝试使用设置会话SQL_模式=(选择CONCAT(@@SQL_模式,',仅“完全的分组方式”)代码>并查看。。