php - 在一列中选择具有最小值并在另一列中具有特定值的记录

标签 php mysql sql

我有一个这样的表:

username     date       place      time
paolo        1/1/2001   milan      00:10.20
marco        1/1/2001   milan      00:11.40
paolo        1/1/2011   milan      00:12.20
paolo        1/1/2004   milan      00:10.50

我想返回用户名 paolo 的时间值最小的行:

paolo        1/1/2001   milan      00:10.20

我正在尝试这个查询:

SELECT username,date,place,MIN(time) as record
FROM crono
WHERE username="paolo"
GROUP BY username,date,place

但它并没有给出我想要的结果。

最佳答案

使用 order bylimit :

SELECT c.*
FROM crono c
WHERE username = 'paolo'
ORDER BY time
LIMIT 1;

使用 GROUP BY 时, SELECT 中永远不会有列不是聚合函数的参数,也不在 GROUP BY 中——除非你真的、真的、真的知道你在做什么。尽管这不适用于您的查询,但这是对解决方案的常见尝试。对

关于php - 在一列中选择具有最小值并在另一列中具有特定值的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36286123/

相关文章:

php - Laravel 处理单选按钮值

php - 关联数组的键名

mySQL - 如何记录谁正在将记录写入我的数据库表

Sql Inner 只有在存在时才加入第一条记录 Take Next

c# - 无效的转换异常,没有重定向或警报

sql - 无法连接到 Azure SQL 服务器,错误 :

php - Codeigniter:如何判断模型是否已加载?

php - 将逗号分隔值转换为双引号逗号分隔字符串

java - Spring Boot 生成无效的 MySQL 查询 (only_full_group_by)

mysql - 如何检查数据库中是否已存在电子邮件