MySQL分组问题

时间:2010-09-22 17:56:54

标签: mysql group-by

我对MySQL有一个奇怪的问题,想看看社区是否有任何想法:

我有一个包含

的表'tbl'
 ____________
| id | sdate  |

我正在尝试执行此查询:

select id, max(sdate) as sd from tbl where id in(123) group by id;

这不会返回任何结果。 但是,这个查询:

select id, sdate from tbl where id in(123);

返回许多带有id和日期的结果。

为什么顶级查询无法生成结果?

2 个答案:

答案 0 :(得分:1)

因此,此表中的ID并不明显,对吧?例如,它可能是StackOverflow上带有查看日期的问题列表,每个问题ID可能会在结果中多次出现。否则,如果ID始终是唯一的,则对它们执行GROUP BY没有意义。当您将结果限制为单个ID时,您在技术上不需要GROUP BY子句,因为MAX()是一个将返回单行的聚合函数。

sdate的数据类型是什么? INT /日期?

向IN()子句提供单个ID是完全可以的;它只是不能为空:IN()。

是否可以提供“DESCRIBE tbl”的输出?和一些示例行?

答案 1 :(得分:0)

原来指数已损坏。运行以下解决了这个问题:

REPAIR TABLE tbl;