首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql if() with max()

mysql if() with max()
EN

Stack Overflow用户
提问于 2013-03-12 14:44:37
回答 2查看 5.8K关注 0票数 0

我有一个名为attproduct的表

有三列id, attribute, values

我在attribute列中为每个id设置了colorbrand,在value列中设置了相应的值

代码语言:javascript
复制
SELECT id, MAX( IF( attribute =  'brand', value, NULL ) ) AS Brand,
       MAX( IF( attribute =  'color', value, NULL ) ) AS color
FROM fy.attproduct
GROUP BY id

当我运行这个查询时,我在id, brand, color as columns中得到了所需的输出。

我需要知道max在我的查询中的角色是什么,当我删除max时,我得到的值是空值

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-12 14:52:03

MAX()正在组合与每个id相关联的值。

代码语言:javascript
复制
SELECT id, IF( attribute =  'brand', value, NULL ) AS Brand, IF( attribute =  'color', value, NULL ) AS color
FROM fy.attproduct

如果没有,GROUP BY应该返回如下行

代码语言:javascript
复制
ID  Brand      color
1   'mybrand'  NULL
1   NULL       'mycolor'

当不使用MAX()时,将只选择一行,因此至少有一列将为NULL

票数 0
EN

Stack Overflow用户

发布于 2013-03-12 14:50:47

group by id将attproduct中与给定id相关联的所有行滚动到一个结果行中。如果不指定像min或max这样的聚合器,则会从源行中选择一个随机值作为结果(很可能是第一个找到的值)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15354963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档