在mysql中执行下面的sql语句时,只返回一行。而且我查了mysql文档也没有找到该语句的定义行为。这个语句有语法错误吗?
select * from Deal group by id and 1;
演示 sqlfriddle
最佳答案
看看使用以下内容时会发生什么:
select *, id and 1 as newCol from Deal
每行的 newCol
等于 1。这是因为 mysql 将其计算为 bool 值。这解释了为什么您只使用 group by
返回单个结果,而是按每条记录中的相同值进行分组。
也许您想知道当您使用逗号对数字进行分组而不是使用 and
时会发生什么:
select * from Deal group by id, 2
按 id
和表格中的第二个字段(price
)进行分组。
关于mysql - mysql中按列名和数字分组的定义行为是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38781086/