Mysql 按问题分组

Mysql 按问题分组,mysql,group-by,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和日期的结果 为什么顶部查询无法生成结

我对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和日期的结果


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

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

sdate的数据类型是什么?整数/日期时间

为IN()子句提供一个ID是完全正确的;它不能是空的:IN()


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

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

sdate的数据类型是什么?整数/日期时间

为IN()子句提供一个ID是完全正确的;它不能是空的:IN()


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

结果表明索引已损坏。运行以下命令解决了问题:

REPAIR TABLE tbl;

原来索引已损坏。运行以下命令解决了问题:

REPAIR TABLE tbl;

你的IN子句缺少逗号了吗?没有。而且上面的查询在IN子句中只有一项。我不相信这是可能的。well,不管你认为这是可能的还是不可能的,都是无关紧要的,因为,嗯,这是可能的,而且正在发生。读入损坏的索引。您的IN子句是否缺少逗号?否。并且上面的查询在IN子句中只有1项。我不相信它是可能的。well,您是否相信它是可能的,这是非常不相关的,因为它是可能的,并且正在发生。读入损坏的索引。正确,ID不明显。在in()中指定多个项目时,必须使用group by。列的数据类型是case_id=int和sdate=datetime。是的,我无法重现您在MySQL 5.1.37中看到的问题。这可能与表上的索引以及在这两个查询之间使用或忽略索引有关。您可以输出“显示来自tbl的索引”吗?请尝试“修复表tbl”、“tbl”、“0”、“主要”、“1”、“id”、“A”、“3681817”、“B树”、“tbl”、“0”、“主要”、“2”、“sdate”、“A”、“3681817”、“B树”、“tbl”、“0”、“主要”、“3”、“源”、“A”、“3681817”、“2”、“B树”、“id”、“bigint(20)”、“否”、“PRI”、“0”、“sdate”、“日期时间”、“否”、“PRI”、“0000-00-00:00”、“正确,ID是不可分辨的。在in()中指定多个项目时,必须使用group by。列的数据类型是case_id=int和sdate=datetime。是的,我无法重现您在MySQL 5.1.37中看到的问题。这可能与表上的索引以及在这两个查询之间使用或忽略索引有关。您可以输出“显示来自tbl的索引”吗?请尝试“修复表tbl”、“tbl”、“0”、“主要”、“1”、“id”、“A”、“3681817”、“B树”、“tbl”、“0”、“主要”、“2”、“sdate”、“A”、“3681817”、“B树”、“tbl”、“0”、“主要”、“3”、“源”、“A”、“3681817”、“2”、“B树”、“id”、“bigint(20)”、“否”、“PRI”、“0”、“sdate”、“日期时间”、“否”、“PRI”、“0000-00-00:00”,“当我提到它时,似乎是一种可能性——因为在工作情况下,它可以忽略索引。”当我提到它时,这似乎是一种可能性——因为在工作情况下,它可以忽略索引。:)