gpt4 book ai didi

mysql - MySQL 是否将 Varchar 视为绝对值?

转载 作者:行者123 更新时间:2023-11-29 07:50:08 25 4
gpt4 key购买 nike

我有一个表,其中一列的数据类型是 varchar。以下是一些值:

-.001
-.010
-7.13

当我按降序排序时,它会给出以下结果:

-7.13
-.010
-.01

这是倒退的,但如果你取数字的绝对值,这是正确的。同样,如果我运行查询这些数字的最大值,它会给出 -7.13。

这就是 MySQL 对 varchar 所做的吗?

(P.S.我在Mac上使用Sequel Pro,有时会有一些有趣的设置。这可能是原因吗?)

最佳答案

没有。 Varchar 按字母顺序排序,这(对于单个字符)对应于 ASCII 编码。在 ASCII 编码中(参见 here ),句点是“46”,它小于 0,即“48”。

换句话说,您的值只是按照其字符应有的顺序排序。

如果您想要数字排序,则可以使用+ 0 静默转换为数字(“静默”意味着忽略错误)。即:

order by col + 0 desc

关于mysql - MySQL 是否将 Varchar 视为绝对值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26706979/

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