选择具有最大十六进制值的行

时间:2011-07-09 18:32:45

标签: sql select

我正在寻找一种从MySQL表中选择单行的方法。 其中一列包含十六进制值,我只想选择包含最大十六进制值的行。

因此,例如有三行,如:

id   hex_value   comments
 1   01          some comments...
 2   1A          some comments...
 3   03          some comments...

因此,结果返回的行内容将是id 2,因为值1A是最大的。

如果有人能指出我正确的方向,那将是非常感激的。

谢谢 标记

3 个答案:

答案 0 :(得分:1)

SELECT ... ORDER BY  UNHEX(hex_value) desc LIMIT 1

应该有效

答案 1 :(得分:1)

select ...
order by CONV(hex_value,16,10)
limit 1

请参阅http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_conv

答案 2 :(得分:0)

只要十六进制字符串的长度相同(如示例所示),它们就可以作为字符串进行比较,因此您可以对它们进行排序:

select id, hex_value, comments
from TheTable
order by hex_value desc
limit 1

注意:排序时需要使用desc才能获得最高值。