我正在尝试执行以下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_guid
LIMIT 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 |
|------|-------|----------|-------------|-------------|
答案 0 :(得分:0)
ORDER BY
子句位于GROUP BY
子句之后。
答案 1 :(得分:0)
您的查询应该是这样
SELECT `event_id`, `entity_guid` FROM `selector`
WHERE `to_id`='44'
GROUP BY `event_id`, `entity_guid`
ORDER BY `time` DESC
如果您需要更多帮助,请共享您的数据集和预期输出