mysql - 从表中的分组记录中选择除最后一条记录之外的所有记录

标签 mysql

我正在尝试从表中选择除最后一行之外的所有分组数据。

+----+--------+--------+                    +----+--------+--------+
| id | userID | amount |                    | id | userID | amount |
+----+--------+--------+                    +----+--------+--------+
| 1  | 20     | 400    |                    | 1  | 20     | 400    |
| 2  | 20     | 200    |                    | 2  | 20     | 200    |
| 3  | 21     | 100    |         =>         | 3  | 21     | 100    |
| 4  | 11     | 500    |                    | 4  | 11     | 500    |
| 5  | 11     | 250    |                    | 6  | 21     | 50     |
| 6  | 21     | 50     |                    
| 7  | 20     | 100    |                    
| 8  | 21     | 200    |
+----+--------+--------+

我尝试过使用查询

SELECT *
  FROM table 
 WHERE userID != (SELECT MAX(userID) FROM table) 
 GROUP 
    BY userID

但它只获取唯一的一行数据,即使还有更多数据

最佳答案

你没有聚合功能,所以不需要group by

SELECT * 
FROM table 
WHERE userID != ( 
  SELECT MAX(userID) FROM table
) 

这可能发生在 mysql 版本 <5.7 的 mysql 版本> 5.7(默认设置)中,使用 group by 会引发错误

关于mysql - 从表中的分组记录中选择除最后一条记录之外的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56408643/

相关文章:

javascript - json_encode 一个 MySQL 表并对每一行进行 urldecode

mysql - 查询有问题

mysql - 如何从存储在序列化 JSON 列中的 Mysql 列中提取数据?

php - 如何通过一次提交将多行插入数据库

mysql - mysql行约束的实现方式

mysql - 从django中的不同主机访问数据库

php - Internet Explorer 回显重复的 mysql 结果?

php - 它不会总结,我的代码有什么问题?

.net - 无法使用 .NET 连接器连接到本地 MySQL 数据库

MySQL 到 iOS 应用程序 (Xcode 5)