gpt4 book ai didi

十六进制字符串上的Mysql max

转载 作者:行者123 更新时间:2023-11-29 00:28:26 26 4
gpt4 key购买 nike

我在对以 varchar(25) 格式保存的十六进制值使用 max 运算符时遇到问题。

数字是这样的:

0
1
0A
0F
FF
10A

现在如果我做这样的事情:

SELECT MAX(CONV(number, 16, 10)) as number FROM `numbers` WHERE 1

我得到 FF (255) 而不是我期望的 10A (266)

有什么问题?它有不同的长度吗?但是为什么它对 0 和 FF 有效呢?有提示就好了!

提前致谢。

最佳答案

来自文档:http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_conv

Converts numbers between different number bases. Returns a string representation of the number N, converted from base from_base to base to_base.

conv 的结果总是一个字符串。如果您的 to_base 是 10,它仍然会生成一个字符串,即使您认为它应该是一个数字是有意义的。

maxing 一个 varchar 列时,mysql 可以做一些奇怪的事情,但我个人并不知道所有的细节。与B树有关。请参阅此资源。 http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html .奇怪的是那个页面上有关于这个问题的信息,但这就是原因。

关于十六进制字符串上的Mysql max,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17786334/

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