什么是在mysql中按列名和数字分组的行为

时间:2016-08-05 04:23:47

标签: mysql sql

当在mysql中执行下面的sql语句列表时,只返回了一行。我查找了mysql文档,但未找到该语句的已定义行为。此语句中是否存在语法错误?

 select * from Deal group by id and 1;

sqlfriddle上的演示

1 个答案:

答案 0 :(得分:1)

看看使用以下内容时会发生什么:

select *, id and 1 as newCol from Deal

newCol每行等于1。这是因为mysql将其评估为布尔值。这解释了为什么您只返回group by的单个结果,您在每条记录中按相同的值进行分组。

也许您想知道当您使用逗号分组而不是使用and时会发生什么:

select * from Deal group by id, 2

表格中的id和第二个字段(price)分组。