mysql - SQL MIN() 选择数据。 ORDER表正确

标签 mysql sql database

我有两个问题。首先,我有一个 MySQL 数据库,其中包含以下行:id(AUTO_INCREMENT PRIMARY KEY)nametime .该数据库表示比赛的时间。我想选择时间最小的名称和时间。

SELECT name, MIN(time) as time FROM race GROUP BY TIME;

只要名字中没有重复,这个查询就会给我所有的时间和名字。然而,我只想要最快的时间和该行中的名称。

然后,当我提交我的时间时,我想知道我在什么地方。 ORDER BY TIME 会保持每一行的每个 ID 相同,还是我可以按时间对表进行 ORDER 表,然后选择 ID = 1 的行?

最佳答案

如果可以同时有多个条目,我会使用这样的嵌套查询,因为将结果集限制为 1 可能会排除名称。

select name, time from race where time = (select min(time) from race)

如果你想知道给定时间在什么地方,只需计算时间小于它的条目数即可。

select count(*) + 1 as place from race where time < [your time]

关于mysql - SQL MIN() 选择数据。 ORDER表正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11564909/

相关文章:

php - SQL注入(inject)和转义特殊字符

mysql - 在 CakePHP 2.5.1 中将数据从一个表单保存到多个表中

sql - 更新Sqlite3列,关键匹配问题

sql - 在 SQL Server 2008 中运行查询时是否需要包含方括号 []?

PHP mysql 查询使用通配符

php - SQL时间段查询

mysql - SQL:按时间对组进行排序并限制结果

mysql - 根据用户输入按邮政编码排序

sql - 我无法使用函数从表中发送数值

mysql - 这个 Replace Into SQL 查询有什么问题?