我对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和日期的结果。
为什么顶级查询无法生成结果?
答案 0 :(得分:1)
因此,此表中的ID并不明显,对吧?例如,它可能是StackOverflow上带有查看日期的问题列表,每个问题ID可能会在结果中多次出现。否则,如果ID始终是唯一的,则对它们执行GROUP BY没有意义。当您将结果限制为单个ID时,您在技术上不需要GROUP BY子句,因为MAX()是一个将返回单行的聚合函数。
sdate的数据类型是什么? INT /日期?
向IN()子句提供单个ID是完全可以的;它只是不能为空:IN()。
是否可以提供“DESCRIBE tbl”的输出?和一些示例行?
答案 1 :(得分:0)
原来指数已损坏。运行以下解决了这个问题:
REPAIR TABLE tbl;