我正在尋找一種從MySQL表中選擇單個行的方法。 其中一列包含十六進制值,我只想選擇包含最大十六進制值的行。選擇具有最大十六進制值的行
因此,舉例來說,有三排,如:
id hex_value comments
1 01 some comments...
2 1A some comments...
3 03 some comments...
所以最終返回的行內容將ID 2的值1A是最大的。
如果有人能指出我在正確的方向,它將不勝感激。
謝謝 馬克
我正在尋找一種從MySQL表中選擇單個行的方法。 其中一列包含十六進制值,我只想選擇包含最大十六進制值的行。選擇具有最大十六進制值的行
因此,舉例來說,有三排,如:
id hex_value comments
1 01 some comments...
2 1A some comments...
3 03 some comments...
所以最終返回的行內容將ID 2的值1A是最大的。
如果有人能指出我在正確的方向,它將不勝感激。
謝謝 馬克
只要十六進制字符串的長度相同(如你的例子),它們具有相近作爲字符串,因此您可以對它們進行排序:
select id, hex_value, comments
from TheTable
order by hex_value desc
limit 1
注意:排序時需要使用desc
以獲得最高值。
SELECT ... ORDER BY UNHEX(hex_value) desc LIMIT 1
應該工作
這變得非常接近,謝謝 – MarkJWiggins
這不會返回一行,它只會將最後一行放在結果中。 – Guffa
select ...
order by CONV(hex_value,16,10)
limit 1
看到http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_conv
這似乎是一種享受,謝謝! – MarkJWiggins
這將得到具有最低值的行,而不是最高值。 – Guffa
「hex_value」列的類型是什麼? – Michas