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

标签 mysql sql

在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/

相关文章:

java - 找不到映射描述。请配置 JdbcType 将缓存 'PersonCache' 与 JdbcPojoStore 关联 ERROR

php - MYSQL:为什么这个更新查询不起作用?

php - MYSQL中如何保证并发线程不会得到相同的值?

php - 执行 "weighted"SQL 查询

sql - 如何使用 VS2008 服务器资源管理器在 SQLite 中创建表

mysql - 如何使用Mysql脚本将MySQL表中的数据解析到另一个表中

mysql - SQL查询统计图片数量并获取封面图片

Mysql - 将来自两个不同数据库的两个选择查询合并到一个输出中

mysql - 我应该在这个例子中使用外键吗?

sql - RDBMS 中传递依赖的问题是什么?