首页 > 解决方案 > Mysql查询中的顺序和组行

问题描述

我正在尝试执行以下 mysql 查询并收到提到的错误。

SELECT * FROM `selector` WHERE `to_id`='44' ORDER BY `time` DESC 
GROUP BY `event_id`, `entity_guid`;

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'GROUP BY event_id, entity_guidLIMIT 0, 25'附近使用正确的语法

任何人都可以帮助更正/重写此查询,因为我需要先按降序排列行time,然后通过分组event_id和消除重复条目entity_guid

下面是我的SELECTOR表的表示

|------|-------|----------|-------------|-------------|
|fr_id | to_id | event_id | entity_guid | time        |
|------|-------|----------|-------------|-------------|
| 44   | 54    |  4       | 0           | 1531121058  |
|------|-------|----------|-------------|-------------|
| 54   | 44    |  3       | 0           | 1531063718  |
|------|-------|----------|-------------|-------------|
| 54   | 44    |  2       | 609         | 1531063431  |
|------|-------|----------|-------------|-------------|
| 54   | 44    |  1       | 608         | 1530975443  |
|------|-------|----------|-------------|-------------| 
| 150  | 44    |  1       | 608         | 1531542247  |
|------|-------|----------|-------------|-------------|     

我需要的实际结果如下

|------|-------|----------|-------------|-------------| 
| 150  | 44    |  1       | 608         | 1531542247  |
|------|-------|----------|-------------|-------------|
| 54   | 44    |  3       | 0           | 1531063718  |
|------|-------|----------|-------------|-------------|
| 54   | 44    |  2       | 609         | 1531063431  |
|------|-------|----------|-------------|-------------|   

标签: mysqlmysql-workbench

解决方案


ORDER BY子句在子句之后GROUP BY


推荐阅读