首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL5.6中字母与数字的关系

MySQL5.6中字母与数字的关系
EN

Stack Overflow用户
提问于 2020-03-29 22:38:02
回答 1查看 33关注 0票数 0

为什么'a‘在列中的任何整数前面都有int和string以及max、min或avg操作。

查询上下文:-

代码语言:javascript
复制
select max(col1),max(col2),min(col2),avg(col3) 
from 
(
select 1 as col1, 2  as col2, 3  as col3 
union select 5, 6, 7 
union select 7, 8, 9 
union select 0, 1, 2
union select 1, 2, 3
union select 'a','b','c'
) as result_set;

结果:

代码语言:javascript
复制
| max(col1) | min(col2) | avg(col3) |
|-----------|-----------|-----------|
|         a |         1 |      4.25 |

SQLfiddle片段:-

http://sqlfiddle.com/#!9/24fc37/1

EN

回答 1

Stack Overflow用户

发布于 2020-03-29 22:42:28

列是字符串而不是数字,这让我有点惊讶。在许多情况下,当number和字符串组合在一起时,结果类型是number --这会将'a'转换为0

也就是说,您将获得字符串排序。这可能跟在ASCII字符集之后。在此字符集中,数字(如'1')的“字母顺序”低于字母。

不幸的是,UNION ALL的类型规则是什么,documentation并不清楚。这似乎偏向于字符串,这与算术计算不同(例如,0 = 'a'返回"true",因为'a'被转换为数字)。

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

https://stackoverflow.com/questions/60915797

复制
相关文章

相似问题

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