gpt4 book ai didi

MySQL、Max 似乎无法正常工作?

转载 作者:行者123 更新时间:2023-11-29 02:37:08 27 4
gpt4 key购买 nike

我有一个包含数据的表,其中一个字段是“类”

当我这样做时:

select* from cvs where `Player ID` = <a_number> 

我得到的数据包含从 1 到 10 的类号

如果我那么做

select max(`Class`) from cvs where `Player ID` = <a_number>

它返回 9 而不是 10?

我删除了第10类数据,它仍然返回9,我删除了第9类数据,它返回了8

类是一个 varchar(50)

发生了什么???

最佳答案

如果您的类字段仅填充整数,请尝试:

select max(cast(Class as UNSIGNED)) 
from cvs
where `Player ID` = <a_number>

MySQL 正在执行字母数字排序而不是数字排序,因为它是一个 varchar。当它比较第一个字符时,'9' 大于 '1',因此它排在 '10' 之后。

理想情况下,如果数据是数字,则应使用适当的数字类型而不是 varchar 来存储它。这也将避免以下问题:现在运行良好的查询在将来停止运行只是因为在 Class 列中插入了一个非整数值。

关于MySQL、Max 似乎无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3557685/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com